我有一个存储在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,会发生什么。如果我试图这样做,那么我想要的只是拒绝接受或推动另一个分支,就像这两个人从未共享历史一样。
这可能吗?如果没有,是否有规范的方法从一个原始文件创建两个并行项目,保留历史记录和修订版编号?
答案 0 :(得分:3)
规范的方法是将hg convert与这样的文件映射一起使用:
exclude b
rename a .
(然后将a
和b
的角色颠倒以创建第二个存储库)
这样你最终会得到两个不相关的存储库(Mercurial将拒绝推/拉而不使用强制)只包含单个目录的历史记录。
另见this问题以供参考。