解决冲突:如何自动接受“他们的”更改?


97

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

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

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

但是,在许多情况下,我希望在一些冲突的文件上接受“仅我”或“仅我”的更改。我正在考虑创建两个简单的sed / awk /无论名称如何的脚本accept-theirs.shaccept-my.sh或者是否有任何“适当”的方法来做到这一点?

Answers:


166

hg resolve -t internal:other --all

接受theirs

hg resolve -t internal:local --all

接受 yours


非常感谢你!我不明白@djc是什么意思,但是您的解决方案就像一个魅力。
psihodelia 2013年

@psihodelia djc说的差不多,请尝试hg help merge-tools(mergetools是更高版本的别名)
MGP

6
作为旁注,我对此[alias] mine = resolve -t internal:local theirs = resolve -t internal:other
作了

1
对于.hgrc新手[alias],这三行代码可以添加到自己的代码中:,然后mine = resolve -t internal:local,然后theirs = resolve -t internal:other。之后,您可以使用hg mine some_file.pyhg theirs -a(全部使用)
Tobia 2014年

1
phab.mercurial-scm.org/D4379开始,您可能还需要添加--re-merge标志(例如hg resolve -t internal:other --re-merge --all
Ethan Koenig

23

试试这个:

hg merge --tool 'internal:other'

另请参阅hg help merge-tools以获取更多信息。


1
resolve用于单个文件/重做。(此外,引号internal:other是不必要的。)
克里斯·摩根
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.