【问题标题】:Excluding a file while merging in Mercurial在 Mercurial 中合并时排除文件
【发布时间】:2012-06-04 09:35:18
【问题描述】:

我将 Mercurial 与 TortoiseHg 一起使用。我有两个分支(AB)和两个文件(toto.cstiti.cs)。

当我想将BA 合并时,有没有办法从合并中排除titi.cs,而只合并toto.cs?如果可以,我该怎么做?

【问题讨论】:

    标签: mercurial merge tortoisehg


    【解决方案1】:

    当然。不合并titi.cs 实际上只是完全按照它存在于A 或B(您的选择)中的方式使用titi.cs。您可以像这样手动这样做:

    hg update A
    hg merge B
    hg revert --rev A titi.cs
    

    (将 A 和 B 交换到另一个方向)。
    或者您可以在您的Merge Tool Confguration自动在您的.hgrc 中使用类似的内容。

    [merge-patterns]
    titi.cs = internal:local
    

    这告诉 Mercurial 始终对匹配该模式的文件使用“这个不是那个”。

    【解决方案2】:

    如果您正在谈论某个您希望免于合并的文件,请参阅@Ry4chan's answer。这是完全有效的:一些文件,比如与构建相关的配置,可以自动生成,并且对它们的冲突解决是无用的。或者,您可能真的想删除在源文件中所做的更改。

    另一方面,如果您试图模仿类似 SVN 系统的文件或目录限制合并,请小心。 revert 技巧并不意味着您合并了一些文件而没有合并其他文件:您合并了所有文件,revert 只是一种合并。

    如果您想将一些更改从一个分支移动到另一个分支(例如,将某个子系统中的修复反向移植到旧的稳定分支),您不要将文件与修复合并;相反,您合并包含修复的 changesetshg graft 将帮助您做到这一点。

    【讨论】:

      猜你喜欢
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 2013-08-01
      • 2011-09-11
      相关资源
      最近更新 更多