0

私のプロジェクトはhgext.notifyを使用しています。現在incoming.notify=すべてのチェンジセットで個別のメッセージ。チェンジグループ通知を検討していますが、それでもすべてのチェンジセットに関する情報が1つの大きなメールに含まれています。

ここに問題があります:

私のワークスタイルは「早くそして頻繁にチェックインする」です。私は通常、支店で多くの小さなチェックインを行います。タスクブランチ。最終的に統合されました。

チームメイトは、タスクブランチでのすべてのチェックインのメッセージを見るのが好きではありません。

冗長性を減らすために、collapseやhisteditなどの履歴編集拡張機能の使用を検討していますが、履歴を失うことは嫌いです。個々のチェンジセットに煩わされたくないだけです。

Q:通知を次のように実行するように設定できる、既存のフックの構成、または代替のhg拡張機能はありますか。

  1. 変更グループごとに1つのメッセージ(それで問題ありません)

  2. 単一のユーザーがチェンジグループごとにメッセージを提供しました-すべてのブランチチェンジセットメッセージの連結だけではありません

  3. たとえば、トランク(hg用語のデフォルトブランチ)の変更されたメッセージのみを除外します。つまり、ブランチチェンジセットメッセージを残しますが、電子メールは送信しません。

    (注:私のプッシュには通常、ブランチ上の複数のチェンジセットが含まれ、その後デフォルトにマージされます。したがって、影響を受けるブランチに応じてチェンジグループ全体をフィルタリングするだけでは不十分です。)

  4. diffstatsは、チップとブランチ上のすべてのチェンジセットの間ではなく、トランク上の「重要な」チェンジセット(デフォルトのブランチ)の間だけです。これは、トランク上のすべてのチェンジセットである可能性があります。

4

1 に答える 1

1

そのような拡張機能は存在しないのではないかと思います。通知拡張機能は、カスタマイズの余地が少しある電子メールを送信するための基本的な方法にすぎません。

あなたはあなたが欲しいものについて特定の考えを持っているように思えます。リビジョンセットhg logとして作成し、changegroupフックで使用できるかどうかを確認することをお勧めします。出力をにパイプするmailと、ハートのコンテンツに合わせてカスタマイズできる非常にシンプルな通知拡張機能が手に入ります。

私が言っているのは、通知拡張機能はそれほど複雑ではなく、多くの場合、の適切な呼び出しで置き換えることができるということですhg log。出力を何よりも変更したい場合は、カスタムテンプレートを使用することもできます。hg loghg log -vhg log --patch

トリッキーな部分(およびあなたの質問から完全に明確ではない部分)は、正確に正しいチェンジセットを除外することです。上記のポイント4で「重要な」チェンジセットについて言及しましたが、何がチェンジセットを「重要」にするのか完全にはわかりません。機能ブランチからへのマージであることが重要な場合は、次のdefaultようなものが始まりかもしれません。

hg log -r "$HG_NODE:tip and children(not branch(default)) and branch(default)"

非チェンジセットの子チェンジセットを取得し、default上のチェンジセットと交差することによりdefault、フィーチャブランチが統合されたマージポイントを正確に取得します。

答えが非常に一般的であると申し訳ありませんが、必要なものに合わせて小さなカスタムシェルスクリプトを作成するのが最善だと思います。

于 2012-01-05T21:56:27.457 に答える