如何防止不同的mercurial分支合并?

时间:2011-08-24 20:59:24

标签: version-control mercurial

我有一个存储在mercurial中的项目,它已经远远超出了它的原始版权,现在我想将存储库分成两个独立的项目。假设文件树看起来像这样:

src/
  a/
    a.h
    a.c
  b/
    b.h
    b.c

说我hg clone这个存储库两次,在第一个克隆中我执行了hg rm src/b/*,在第二个克隆中我执行了hg rm src/a/*。这给了我想要的两个独立的源代码树,每个分支都保留了历史记录和修订版号。

我现在遇到的问题是,如果将来我偶然从a / clone拉入b / clone,会发生什么。如果我试图这样做,那么我想要的只是拒绝接受或推动另一个分支,就像这两个人从未共享历史一样。

这可能吗?如果没有,是否有规范的方法从一个原始文件创建两个并行项目,保留历史记录和修订版编号?

1 个答案:

答案 0 :(得分:3)

规范的方法是将hg convert与这样的文件映射一起使用:

exclude b
rename a .

(然后将ab的角色颠倒以创建第二个存储库)

这样你最终会得到两个不相关的存储库(Mercurial将拒绝推/拉而不使用强制)只包含单个目录的历史记录。

另见this问题以供参考。