0

説明する方法がわからない興味深い状況に遭遇しました。だから私はここにそれのスクリーンショットがあります(2人のプログラマーが両方とも同期する中央リポジトリでここで働いていることに注意してください):

左側の画像は他のプログラマーのコア(現在はヘッド)に更新され、右側の画像はdevにマージする前に私のコアに更新されます。

http://d.pr/i/aorX http://d.pr/i/7d7q

ご覧のとおり、1つのCoreブランチがに#372マージされていDevます。他のプログラマーは、で私の変更とマージするのを忘れて#372(375以降の変更の前にすでに中央リポジトリにプッシュしていました)、続行しました。

これで、devにマージされたコアブランチができました。他のプログラマーのコアは、私が始めようとしているものになります。それは問題ではありません。問題は、2つのコアと、混乱を招く分岐を伴う乱雑なツリーが表示されることです。

コアブランチが1つだけになるようにするにはどうすればよいですか?それともこれで大丈夫ですか?

4

2 に答える 2

4

ご覧のとおり、1つのコアブランチ#372がDevにマージされています。他のプログラマーは、#372(375以降の変更の前にすでに中央リポジトリにプッシュしていた)での私の変更とマージするのを忘れて、続行しました。

それは私が見ているものではありません。#372は両側の#373の親です。#381 +と#372 +を削除すると、両方のグラフは同じになります。現在の作業コピーの親が異なるという理由だけで、それらは異なって描画されています。

確かに、少し奇妙に見えますが、ここでは問題はありません。#372 +がコミットされた後、ある時点で#381(または現在のコアヘッドが何であれ)とマージする必要がありますが、それも例外ではありません。

于 2012-05-16T06:39:46.320 に答える
2

現在、チェンジセット381と372の両方がにマージされているため、Core実際にはトポロジヘッドdevは0です。グラフには、作業ディレクトリが現在そのチェンジセット上にあるため、チェンジセット372から伸びる長い線が表示されます。この行は、あなたが行うコミットが372の子になることを示しています。他のプログラマーの作業ディレクトリはチェンジセット381にあるため、彼のグラフは異なって見えます。381に更新すると、グラフは他のグラフと同じように見えます。

したがって、あなたの質問に答えるために、Coreブランチヘッドはすべてdevにマージされているので、これは問題にはなりません。また、複数のトポロジカルヘッドがオンCoreになっている場合は、新しいヘッドを引き込んだときに、mercurialが警告を表示します。

于 2012-05-16T01:38:32.813 に答える