【问题标题】:How to prevent divergent mercurial branches from merging?如何防止不同的mercurial分支合并?
【发布时间】:2011-08-24 20:59:24
【问题描述】:

我有一个存储在 mercurial 中的项目,该项目已远远超出其最初的职责范围,现在我想将存储库拆分为两个单独的项目。假设文件树看起来像这样:

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

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

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

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

【问题讨论】:

    标签: version-control mercurial


    【解决方案1】:

    规范的方法是使用hg convert 和这样的文件映射:

    exclude b
    rename a .
    

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

    这样您最终会得到两个不相关的存储库(Mercurial 将拒绝在不使用强制的情况下推送/拉取)仅包含单个目录的历史记录。

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

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 2012-08-26
      • 2012-02-07
      • 2011-12-30
      • 2010-09-08
      • 1970-01-01
      • 2014-10-15
      • 1970-01-01
      • 2019-03-28
      相关资源
      最近更新 更多