ibrahima / gitwatch @ 0163ec5のワンショットバージョンで実装され、そのコミットに関するコメントで@ibrahimaによって指摘されているように、一部のユースケースでは、コミットメッセージにdiffを含める機会があると便利です。
ファイル名などを省略し、標準の最大長であるgit "short"コミットメッセージに切り捨てます。これは、通常1つのファイルのみを変更する変更にうまく対応するはずです。
このオプションは、複数のファイルが変更され、その場合の実際の差分が含まれていない場合もキャッチできますが、代わりに「複数のファイルが変更され、差分が省略されています」のようになります。
これを含めるためのオプションスイッチ(例:-d / -diff)と、切り捨てる文字数の後に設定する追加のスイッチ(デフォルトは80)を実装できます。
それは賢明な方法のようです。
最後に、bashで長いオプションの切り替え(--diff)を行う_良い_方法がないことを確認しました(いくつかの合理的な方法がありますが、どれもエレガントだとは思いませんが、bashスクリプトがエレガントになることはめったにありません;))。 これはbashなので、おそらくgetoptsを使用して、1文字の切り替えを行うだけですが、非標準の動作などに依存する長いオプションを実行する方法はあります。 長いオプションをサポートするGNUgetoptもありますが、移植性が低く、少し見苦しいかもしれません。 とにかく、これまでgitwatchはパス以外のオプションを選択しないため、この時点ではおそらくすべてを気にする必要はありませんが、それについてどう思うかはあなた次第だと思います。 私は以前にgetoptsを使用したことがありますが、これはかなり簡単で、bashに組み込まれています。
もう1つの質問は、切り捨て方法と、+-記号を含めるかどうか、ファイル名も含めるかどうかです。 おそらく、メッセージにさまざまなコンポーネントを追加するいくつかのオプションがある可能性があります(切り捨てられた差分、変更されたファイル、現在の自動コミットメッセージなど)。
bashでgetoptsを使用して、テストブランチにいくつかの短いオプションを導入しました。 しかし、あなたの権利、長いオプションを使用する「良い」方法がない場合は、今のところ短いオプションで十分です。
今のところ、残りのコミットメッセージが実行される前に、diffメッセージを単に先頭に追加します。 別の種類のコミットメッセージが必要な場合、ユーザーはスクリプトを簡単に変更できます。 テストブランチをプルして、そこにオプションと処理を追加できれば、それは素晴らしいことです:D
これに関していくつかの重要な進歩があったようです。 誰かがこれを再訪して、それをまとめて完成させたいのであれば、私はマージすることを検討したいと思います。
私は実際に似たようなものを探していますが、コミットメッセージにファイル名のみを含めたいと思います。 それはおそらくもっと簡単ですか、それともそれを行う方法がすでにあるかもしれませんか?
@dmusicanこの機能も必要なので、実装して、最新のマスターブランチに対してプルリクエストを作成しました: https :
また、「gitdiff」と「gitdiff --stat」として表示される行数を設定できるため、「-l 1」を使用すると、誰かが古いプルリクエストで実装しようとした機能が発生しますhttps:// github.com/gitwatch/gitwatch/pull/23/commits/af28cf4a87c71cdb9da7046d40ea9542a4661f43
@mlncnプルリクエストhttps://github.com/gitwatch/gitwatch/pull/54($#$ git fetch origin pull/54/head:pr-54 && git checkout pr-54
)を試してみると、ファイル名(変更のグラフ付き)が次のように表示されるはずです。 gitwatch -l 1 ~/myproject
を使用してメッセージをコミットします。
プルリクエストがマージされました。 どうもありがとう、 @ shervinemami 。
最も参考になるコメント
@mlncnプルリクエストhttps://github.com/gitwatch/gitwatch/pull/54($#$
git fetch origin pull/54/head:pr-54 && git checkout pr-54
)を試してみると、ファイル名(変更のグラフ付き)が次のように表示されるはずです。gitwatch -l 1 ~/myproject
を使用してメッセージをコミットします。