Version control hg Repo之间以托管方式共享文件
问题:一个hg存储库中有一个我想在另一个hg存储库中更新和维护的文件,我不想复制和粘贴。我确实希望该文件在两种回购协议中都可用 情景: 处理产品0001 项目A有一个hg存储库 沿着这条路,一个项目B开始了。基本上没有耦合 在项目A和B之间,但有些文件可能 共享 以托管方式控制文件的版本至关重要:复制& 粘贴不是一个可行的解决方案 有一些解决方案可能有效-Version control hg Repo之间以托管方式共享文件,version-control,mercurial,Version Control,Mercurial,问题:一个hg存储库中有一个我想在另一个hg存储库中更新和维护的文件,我不想复制和粘贴。我确实希望该文件在两种回购协议中都可用 情景: 处理产品0001 项目A有一个hg存储库 沿着这条路,一个项目B开始了。基本上没有耦合 在项目A和B之间,但有些文件可能 共享 以托管方式控制文件的版本至关重要:复制& 粘贴不是一个可行的解决方案 有一些解决方案可能有效- 将两个回购合并为产品回购。但是,这意味着一组文件的版本号将因其他地方的搅动而改变。另外,不同的项目之间没有太大的关联 将两者转换为子回购。
- 将两个回购合并为产品回购。但是,这意味着一组文件的版本号将因其他地方的搅动而改变。另外,不同的项目之间没有太大的关联
- 将两者转换为子回购。我不确定这是不是正确的方法,次级回购似乎有一些与母回购相关的古怪行为。(或者他们过去是吗?)
这里有什么好的解决方案?您的第二次呼叫是正确的。您应该提取两个存储库中的文件,并将其作为第三个repo,然后为项目a和项目B中的每一个创建子repo 我不知道你是什么时候第一次看到次级回购协议的,但它们已经存在了一年,并且得到了很好的支持 阅读这里有关堆栈溢出的一些与子回购相关的答案,确保子回购路径是相对的(而不是绝对的w/http://etc),它们会对您很好 更新: 今天的mercurial 1.7版包括以下针对次级回购的增强功能:
- 支持子存储库源路径的重新映射(请参阅hgrc(5)中的[子路径])
- 使用
--subrepos/-S
- subrepo:添加对“hg存档”的支持
- 子回购:修复SVN子回购的状态检查(问题2445)
rdiff=d-name.hg | xargs-l dirname);do hg——存储库$therepo diff;做了这会提供递归的差异(或状态或传出),并且如果你在这种事情上就足够容易了。保罗,即使在这种情况下,大多数人都认为有一个连续的集成服务器,它每天都会压缩一个构建的/标签的发布,并与此建立最佳的实践。您总是希望能够说‘此二进制文件是根据库版本2010.10.27.0029构建的’而不是‘此二进制文件是根据我当前工作目录中的任何内容构建的’。如果你像这样设置你的工作流程,你可以获得所有的灵活性,并行开发,以及根据可识别的版本进行严格的构建。