1

次のようなコミットのみが表示されるように、TortoiseHg でコミットをフィルター処理したいと考えています。

  1. 少なくとも 1 つの親が別の名前付きブランチにコミットしている。また
  2. 別の名前付きブランチで少なくとも 1 つの子コミットを行います。また
  3. 元の開始点です (コミット 0)。また
  4. 名前付きブランチのヘッドであるか、名前付きブランチのクロージング コミットです。

基本的に、名前付きブランチがどのように流れるかを示す要約グラフを取得するにはどうすればよいですか?

例として、この種のリビジョン グラフを要約します。

リビジョン グラフの例

これらが省略された形式に:

  • Rev 15 (グリーン)
  • Rev 14 (グリーン)
  • Rev 13 (青)
  • Rev 10 (青)
  • Rev 7 (青)
  • Rev 4 (赤)
  • Rev 1 (青)

SoftwareRecsのこの回答で得た具体的な提案を使用してみました:

children(branchpoint() or merge()) or parents(branchpoint() or merge())

ただし、それは私が望むようには機能しません。分岐に関する詳細がないいくつかのコミットがまだ含まれており、たとえば、早すぎるコミットを表示してデフォルトのブランチを短くします。

上記のフィルタの結果

より凝縮されたグラフが得られるように、revset フィルターを変更するにはどうすればよいですか? それは可能ですか?準最適な解決策として、ブランチに名前が付けられているかどうかを区別しない場合も許容できると思います。

4

1 に答える 1

1

これにより、ブランチ名間の比較を除いて、探しているものが得られるはずです。

merge() or parents(merge()) or branchpoint() or children(branchpoint())

これにより、すべてのマージ変更セット、マージの直接の親、すべての分岐点変更セット、および分岐点の直接の子が得られます。

質問投稿の例では、設定したリビジョンセットの複合的な性質のために、マージチェンジセットの子とブランチポイントの親を含めています。それらをバラバラにすることで、結果が少し削減されます。

于 2015-06-12T19:48:44.640 に答える