私は安定した実験ブランチを持つリポジトリを使って作業しています。時々私は実験ブランチ上に安定したブランチの準備ができていないファイルを追加します。私がマージするとき、私は両方のブランチに共通するファイルの変更をマージしたいが、ブランチの1つに存在しないファイルは無視する。Mercurialでマージするときに存在しないファイルを無視します。
は、ここで簡単な例です:私は、マージツールの設定を変更しかし
hg init
hg branch stable
(create file A)
hg add A
hg commit -m "Added A"
hg branch exp
(create file B)
hg add B
hg commit -m "Added B, which is really experimental"
(modify file A)
hg commit -m "Some changes to A"
hg update stable
hg merge exp
、Mercurialは常にマージと一緒にBを取るように見えます。安定したブランチには存在しないので、決して矛盾しません。
私は、次の操作を行うことができます:
hg update stable
hg merge exp
hg commit -m "Merged"
hg revert -r 0 B
が、それは元に戻す必要があるファイルを知っている私を必要とします。
マージを行う最も簡単な方法についての考えは、1つのブランチには存在しないファイルを無視しますが、自動的に行うことをお勧めしますか?
Mercurialは、あなたが言ったことを正確に行っています。あなたは 'exp'ブランチで変更を行い、' stable'ブランチにそれらをマージすると言ったのです。それには新しいファイルが含まれています。代わりに 'stable'の変更を' exp'にマージしようとしましたか? –
おそらく、あなたのブランチの概念を考えて、実際に実験的な変更を行うために3番目のブランチを使うべきでしょう。 –