【问题标题】:Resolving conflicts: how to accept "their" changes automatically?解决冲突:如何自动接受“他们的”更改?
【发布时间】:2013-03-21 10:19:42
【问题描述】:

当使用hg merge 合并有冲突的更改时,Mercurial 会在要合并到我的工作副本中的文件中插入一组标记,如下所示:

<<<<<<< local
  version = 0.2
=======
  version = 0.1
>>>>>>> other

然后我从hg resolve --all -l 生成的列表中手动编辑所有标记为 U 的文件,然后我告诉 mercurial 我已经通过hg resolve -m file1 file2 file3 ... 解决了它们

在许多情况下,我希望在某些冲突文件上接受仅我或仅他们的更改。我正在考虑创建两个名为 accept-theirs.shaccept-my.sh 的简单 sed/awk/whatever 脚本,或者有什么“正确”的方法吗?

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    使用

    hg resolve -t internal:other --all
    

    接受theirs

    hg resolve -t internal:local --all
    

    接受yours

    【讨论】:

    • 非常感谢!我不明白@djc 是什么意思,但你的解决方案就像一个魅力。
    • @psihodelia djc 说的差不多,试试hg help merge-tools(mergetools 是后面版本的别名)
    • 作为旁注,我给它起了别名:[alias] mine = resolve -t internal:local theirs = resolve -t internal:other
    • 这是三行添加到自己的.hgrc,对于新手:[alias],然后是mine = resolve -t internal:local,然后是theirs = resolve -t internal:other。之后您可以使用hg mine some_file.pyhg theirs -a(适用于所有人)
    • phab.mercurial-scm.org/D4379 开始,您可能还需要包含--re-merge 标志(例如hg resolve -t internal:other --re-merge --all
    【解决方案2】:

    试试这个:

    hg merge --tool 'internal:other'
    

    有关更多信息,另请参阅hg help merge-tools

    【讨论】:

    • resolve 用于单个文件/重做它。 (另外,internal:other 周围的引号是不必要的。)
    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 2014-04-27
    • 2016-06-05
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    相关资源
    最近更新 更多