【问题标题】:Mercurial - How to mark files not to be mergedMercurial - 如何标记不被合并的文件
【发布时间】:2016-07-19 10:29:56
【问题描述】:

我正在为客户特定版本使用命名分支。在这个分支上,我有一些特定于客户的文件(品牌、徽标、...)。这些文件永远不应合并到默认分支。

我想确保这些客户特定的文件永远不会合并到默认分支中。

有没有办法在 Mercurial 中将某些文件标记为特定于分支的文件?

【问题讨论】:

    标签: merge mercurial tortoisehg


    【解决方案1】:

    不,我不知道有这样的功能。但是,您可以将该分支一次合并到默认值中,注意仅将您希望合并的内容合并到默认值中(例如,hg 在合并到默认值期间忘记那些客户文件)。在以后的合并中,您选择在默认分支中忘记的那些文件将“仅”显示为

    远程更改了本地删除的客户 使用 (c)hanged 版本,离开 (d) 删除,还是离开 (u)nresolved? d

    您应该在哪里选择“d”。您可以在this paste

    中找到此类练习的示例记录

    如果这些文件是众所周知的并且相当稳定,您可以创建一个提交挂钩(客户端)和/或 pretxnchangegroup 挂钩(服务器端)来检查这些文件是否存在于默认分支内的任何提交中,并且当任何此类文件被提交为默认值时,它会拒绝提交。

    【讨论】:

      【解决方案2】:

      您可以使用合并模式。

      hg merge --config merge-patterns.somefile=internal:local otherbranch
      

      【讨论】:

      • 虽然,再三考虑,如果文件没有在默认分支上被触及,我不确定这是否也有效,在这种情况下,它实际上是一个“合并”,因为有只有一行更改。
      • 不,它没有。您需要在默认值和分支原点之间至少有一个微小的差异。
      猜你喜欢
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      相关资源
      最近更新 更多