我将 Mercurial 与 TortoiseHg 一起使用。我有两个分支(A
和B
)和两个文件(toto.cs
和titi.cs
)。
有没有办法,当我想合并B
时A
,排除titi.cs
合并,只合并toto.cs
?如果可能,我该怎么做?
我将 Mercurial 与 TortoiseHg 一起使用。我有两个分支(A
和B
)和两个文件(toto.cs
和titi.cs
)。
有没有办法,当我想合并B
时A
,排除titi.cs
合并,只合并toto.cs
?如果可能,我该怎么做?
当然。不合并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 始终对匹配该模式的文件使用“这个不是那个”。
如果您正在谈论您希望免于合并的某个文件,请参阅@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.