3

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

有没有办法,当我想合并BA,排除titi.cs合并,只合并toto.cs?如果可能,我该怎么做?

4

2 回答 2

8

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

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

(交换A和B去另一个方向)。
或者,您可以在合并工具配置中自动执行此操作,并在..hgrc

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

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

于 2012-06-04T14:51:44.333 回答
3

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

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

If you want to move some changes from one branch to another (say, backport a fix in a certain subsystem to an old stable branch), you don't merge the files with the fix; instead, you merge the changesets containing the fix; hg graft will help you do so.

于 2012-06-04T15:53:01.113 回答