4

メイン ブランチ (黒) と機能ブランチ (黄色) の 2 つのブランチがあります。

ご覧のとおり、フィーチャー ブランチがフォークされたため、main から変更を取得して最新の状態に保たれています。

代替テキスト http://azkotoki.org/images/stackoverflow/tgh-reintegrate1.gif

フィーチャー ブランチをメイン ブランチに再統合すると、ログ ウィンドウに次の醜いグラフが表示されます。

代替テキスト http://azkotoki.org/images/stackoverflow/tgh-reintegrate2.gif

各マージ ポイントは、フィーチャー ブランチとマージされた新しいブランチとして表示されます。複数の機能ブランチがあれば、これを読むのはほとんど不可能になります。私も試してみましhg viewたが、結果はさらに奇妙です。

上の図に関係なく、最終的なマージ結果は問題ありませんが、再統合されたブランチのグラフが気になります。

機能ブランチに何度もマージして何か間違ったことをしていますか? それとも、tortoisehg のログ ウィンドウに期待しすぎですか :) ?

前もって感謝します

4

3 に答える 3

4

リビジョンはリビジョン番号順に並べられているため、グラフは次のようになります。メインリポジトリには、次のように順序付けられ、番号が付けられたリビジョンがあります。

0 Imported initial repo.
1 Trivial change to also echo b.
2 Added another echo for c.
3 Echo for d.
4 Echo for e.

これは、変更セットがリポジトリに追加された順序を反映しています。フィーチャー ブランチ リポジトリの順序は次のとおりです。

0 Imported initial repo.
1 Trivial change to also echo b.
3 Added another echo for c.
4 Automatic merge...
5 Echo for d.
6 Automatic merge...
7 Echo for e.
8 Automatic merge...

繰り返しますが、すべてがうまく注文されています。ただし、機能ブランチをメイン リポジトリにプルすると、不足している変更セットのみが追加されます。したがって、メインの結果は次のようになります。

0 Imported initial repo.
1 Trivial change to also echo b.
2 Added another echo for c.
3 Echo for d.
4 Echo for e.
5 Refactored echos to print.
6 Automatic merge...
7 Automatic merge...
8 Automatic merge...

グラフはこれを反映しています。

お気づきのとおり、リポジトリは問題ありません。これは、変更セットがディスク上でどのように順序付けられているかの成果物にすぎません。必要に応じて、同じ変更セットが含まれているため、良いグラフのリポジトリを醜いグラフのリポジトリと交換できます。重要な設定を移動することを忘れないで.hg/hgrcください(醜いグラフを含むクローンからファイルをコピーしてください)。

ところで、http://hg.intevation.org/mercurial/crew/ (Mercurial の開発ブランチ) のクローンのグラフを見て、 https://の新しいクローンのグラフと比較すると、www.mercurial-scm.org/repo/hg (Mercurial のメイン ブランチ) 同じ現象が見られます。

于 2009-05-22T09:21:11.543 に答える
1

「より良い」グラフを取得する 1 つの方法は、コンパクト グラフ モードを備えた 2.0 より前の TortoiseHg を使用することです。このモードでは、最初のスクリーンショットと同様に、2 番目のリポジトリには 2 列の行しかありません。

残念ながら、この機能は GTK から Qt に移植されていないため、TortoiseHg の現在のバージョン (2.1.2) にはありません。

于 2011-08-25T22:35:49.403 に答える