我使用Mercurial和TortoiseHg。我有兩個分支(A
和B
)與兩個文件(toto.cs
和titi.cs
)。在Mercurial中合併時排除文件
有沒有辦法,當我想合併B
與A
,排除titi.cs
從合併,只合並toto.cs
?如果可能的話,我該怎麼做?
我使用Mercurial和TortoiseHg。我有兩個分支(A
和B
)與兩個文件(toto.cs
和titi.cs
)。在Mercurial中合併時排除文件
有沒有辦法,當我想合併B
與A
,排除titi.cs
從合併,只合並toto.cs
?如果可能的話,我該怎麼做?
當然。不合並titi.cs實際上只是正確地使用titi.cs,因爲它存在於A或B中(您的選擇)。你可以做到這一點手動這樣的:
hg update A
hg merge B
hg revert --rev A titi.cs
(交換A和B去另一個方向)。
或者你可以在你的Merge Tool Confguration中自動執行,在.hgrc
中這樣做。
[merge-patterns]
titi.cs = internal:local
這告訴Mercurial總是使用「這一個不是那一個」匹配那個模式的文件。
如果您正在討論您想要免除合併的某個文件,請參閱@Ry4chan's answer。這是完全有效的:一些文件,比如與構建相關的配置文件,可以自動生成,並且對它們的衝突解決無用。或者,您可能實際上想要放棄在源文件中所做的更改。
另一方面,如果您試圖模仿SVN類系統的文件或目錄限制合併,請小心。技巧並不意味着你合併了一些文件,並沒有合併其他文件:你合併了所有的東西,復原只是一種合併。
如果你想要一些變化從一個分支移動到另一個(比如,反向移植在某個子系統的舊穩定分支修復),你不合並與修訂的文件;相反,您合併了包含修復程序的變更集; hg graft
將幫助你這樣做。
非常感謝您的回答! – MaT
你也應該知道,[如果「其他」分支更改文件和「本地」不,使用內部合併:本地工具將包括改變,反之亦然(HTTP://mercurial.selenic。 COM /維基/ TipsAndTricks#mergemineortheir) – sventevit