2011-08-24 55 views
1

我有一个存储在mercurial中的项目,它已经远远超出了它原来的职权范围,现在我想将资源库分成两个单独的项目。说文件树看起来是这样的:如何防止不同mercurial分支合并?

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

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

现在我遇到的问题是,如果将来我不小心从a/clone进入b/clone,会发生什么情况。我想要的是,如果我曾试图这样做,就好像这两个人从未分享过历史一样,只是拒绝从另一个分支拉下来或者推向另一个分支。

这可能吗?如果没有,是否有一种规范的方式来创建两个平行的项目,从一个保留历史和修订编号的原始项目?

回答

3

的正规途径是使用hg convert有这样的filemap:

exclude b 
rename a . 

(事后用ab逆转以创建第二个存储库中的角色)

这样你结束与两个不相关的存储库(Mercurial拒绝不使用武力推/拉)相关联,只包含单个目录的历史记录。

另请参阅this问题以供参考。

相关问题