問題について考えてみると、このようなものがあると思いますか?
@ 4[tip]:1 439255c536ee 2013-01-25 10:42 +0000 rob
| More changes on original default branch
|
| o 3 379f384c1d73 2013-01-25 10:41 +0000 rob
| | Changes on named branch B2
| /
| o 2:0 d225da266931 2013-01-25 10:40 +0000 rob
| | Changes on cloned default
| |
o | 1 7088660d3ba6 2013-01-25 10:41 +0000 rob
|/ Changes on original default branch
|
o 0 a02a921256b3 2013-01-25 10:39 +0000 rob
Project Start
あなたが説明している問題は、B2
ブランチを維持したいが、2つの頭を合わせたくないということですdefault
:
$ hg heads default --style=compact
4[tip]:1 439255c536ee 2013-01-25 10:42 +0000 rob
More changes on original default branch
2:0 d225da266931 2013-01-25 10:40 +0000 rob
Changes on cloned default
これを「修正」する可能性は 2 つあります。1 つは、単に「複製された」デフォルト ブランチを閉じることです (少なくともリポジトリでは)。
$ hg update 2
$ hg commit -m "Closing cloned default" --close-branch
$ hg heads default --style=compact
4[tip]:1 439255c536ee 2013-01-25 10:42 +0000 rob
More changes on original default branch
これは、を発行した場合hg update default
、あいまいであってはならないことを意味します。これは問題の一部であると思います。
別の方法は、他のデフォルト ブランチから「 null マージ」を実行することです。
$ hg update
$ hg -y merge --tool=internal:fail 2
$ hg revert --all --rev .
$ hg resolve -a -m
$ hg commit -m "Merged cloned default"
これらのアプローチの主な違いは、この--close-branch
オプションを使用すると、使用時に追加のヘッドが引き続き表示されることhg heads -c
です...これはまだヘッドですが、メタデータに閉じていることを示すフラグが設定されているだけです。閉じたブランチを更新したり、変更をコミットしたりすることもできます。マージを行うと、頭ではなくなるため、頭はまったく表示されません。
これらの方法はどちらも、変更を B2 ブランチにプルできることを意味します。後で同じ問題が発生し、上記を繰り返す必要があります。
それが理にかなっていることを願っています。もちろん、後で別のリポジトリにプッシュする場合は、閉じた/マージされた変更セットもプッシュします。リポジトリを複製し、これらのアプローチをローカルで試して、それが実際に必要かどうかを確認することをお勧めします。