5

私は、git の pre-commit フックを使用して、私または他の誰かが職場のプロジェクトにコミットするときに問題をチェックしてきました。コミットに重大な問題があり、すぐに修正する必要があることを示すために、ゼロ以外のステータスで終了できます。

ただし、プログラマーが警告を必要とするだけの問題である場合もあります (たとえば、変更に基づいてヘルプ ファイルを更新する必要がある場合など)。たとえば、「LFはCRLFに置き換えられます」で得られるようなgit警告を発生させる方法はありますか? 私の動機の 1 つは、私たちの何人かが SmartGit を使用しているため、警告が黄色で明確に表示されることです。

コミット後のフックは有望に見えましたが、さまざまな戻り値を試した後、実際には警告も表示されませんでした。すべてを pre-commit フックに保持しておくとよいでしょう。これを行うためのより良い方法があると確信しています。あなたが与えることができるヒントをありがとう!

4

1 に答える 1

2

警告のリターン コードを返せるというアイデアは、SmartGit によって頭に植え付けられたものだったようです。基になる git は、成功の場合はゼロのみを返し、失敗の場合はゼロ以外を返します。

これを Windows の git bash で実行します。たとえば、次のようにします。

touch tmp.txt
echo "lf line endings" > tmp.txt
git add tmp.txt
echo $?

git への最後の呼び出しの後に「警告」が表示されたとしても、最後のリターン コードとしてゼロを取得する必要があります (SmartGit はそれを警告として認識し、おそらく素敵な黄色の三角形を表示します)。

それを実験することで (つまり、難しい方法で)、SmartGit は "warning:" で始まる行を検索し、行の "warning:" 部分を吸い上げて素敵な黄色の三角形をトリガーするだけであることに気付きました。「警告:」テキストを削除し、「警告:」の「:」の後のすべてを「出力」ウィンドウに警告として出力します。

あまり洗練されていませんが、少なくとも現在は文書化されています。

于 2013-02-28T04:08:24.217 に答える