Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 如何防止分歧的mercurial分支合并?_Version Control_Mercurial - Fatal编程技术网

Version control 如何防止分歧的mercurial分支合并?

Version control 如何防止分歧的mercurial分支合并?,version-control,mercurial,Version Control,Mercurial,我有一个存储在mercurial中的项目,它的发展远远超出了最初的范围,现在我想将存储库拆分为两个独立的项目。假设文件树如下所示: src/ a/ a.h a.c b/ b.h b.c exclude b rename a . 假设我对这个存储库进行了两次hg cloned,在第一次克隆中,我执行了hg rm src/b/*,在第二次克隆中,我执行了hg rm src/a/*。这给了我想要的两个独立的源代码树,每个分支中都保留了历史记录和修订编号 我现

我有一个存储在mercurial中的项目,它的发展远远超出了最初的范围,现在我想将存储库拆分为两个独立的项目。假设文件树如下所示:

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

我现在的问题是,如果将来我不小心从a/克隆拉入b/克隆,会发生什么情况。我希望mercurial能简单地拒绝从另一个分支撤走或推进,如果我曾经尝试这样做的话,就好像这两个分支从未分享过历史一样


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

规范的方法是使用如下文件映射:

src/
  a/
    a.h
    a.c
  b/
    b.h
    b.c
exclude b
rename a .
(之后,
a
b
角色颠倒,创建第二个存储库)

这样,您将得到两个不相关的存储库(Mercurial将拒绝在不使用强制的情况下推/拉),它们只包含单个目录的历史记录

另请参见问题以供参考