3

TortoiseHg で Mercurial を使用しています。2 つのファイル (および)を持つ 2 つのブランチ (Aおよび) があります。Btoto.cstiti.cs

Bとマージしたいときに、マージAから除外titi.csしてのみマージする方法はありtoto.csますか? 可能であれば、どうすればそれができますか?

4

2 に答える 2

8

もちろん。titi.cs をマージしないということは、titi.cs を A または B (選択したもの) に存在するとおりに使用することです。次のように手動で行うことができます。

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

(A と B を入れ替えて反対方向に移動します)。
または、Merge Tool Configurationで、.hgrc.

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

これは、Mercurial に、そのパターンに一致するファイルに対して常に「あれではなくこれ」を使用するように指示します。

于 2012-06-04T14:51:44.333 に答える
3

マージを免除したい特定のファイルについて話している場合は、@ Ry4chan's answerを参照してください。これは完全に有効です。ビルド関連の構成などの一部のファイルは自動生成でき、それらの競合解決は役に立ちません。または、ソース ファイルで行われた変更を実際に削除したい場合もあります。

一方、SVN のようなシステムのファイルまたはディレクトリに制限されたマージを模倣しようとしている場合は、注意してください。このrevertトリックは、いくつかのファイルをマージして他のファイルをマージしなかったという意味ではありません。

あるブランチから別のブランチにいくつかの変更を移動したい場合 (たとえば、特定のサブシステムの修正を古い安定ブランチにバックポートする場合)、ファイルを修正とマージしません。代わりに、修正を含む変更セットをマージします。hg graftそうするのに役立ちます。

于 2012-06-04T15:53:01.113 に答える