開発者が自分の共有リポジトリに更新をプッシュするときに通知メールを送信するフックを作成しました。私はbashの次のビットを使用して生成特定のリビジョンでどのファイルが変更されたかを調べるための配管コマンド
A __classes/Page/Activity.php
M __config/Scheme.php
:
$(git diff "$newrev"^ "$newrev" --name-status)
これは正常に動作します。このメールは、たとえば、変更されたファイルのリストが含まれています。しかし、私はこのすべてを今よく知られているpost-receive-email hookに移植しようとしています。このフックにはhooks.showrev
設定ディレクティブがありますが、これはリビジョン番号(%s
)をに1回だけコマンドで使用できると考えています。したがって、これは機能しません:
showrev = "git diff %s^ %s --name-status"
これだけの 'plumbing'コマンドが必要です。誰かが私を正しい方向に向けることができますか? :)
ありがとうございます、それは私が欲しいものをやります!賢明、フォーマットを空に設定する。 :)私は '[commit message] \ n \ n> [日付] \ n> [ハッシュ]'を表示するコマンドを取得しようとしていますが、まだ動作しません。私はこれを 'showrev =" git log -1 --format = '%b%n%n>%ad%n>%H'%s "'を使ってコマンドラインで実行しましたが、いくつかのエラーが出ます'%n 'について – Rijk
これらは正確なエラーです: 'remote:printf:739:%n:無効なディレクティブ'、 'remote:eval:1:構文エラー:終了していない引用文字列'です。どのようにこれを修正するための任意のアイデア? – Rijk
@Rijk:代わりに '%% n 'を使用してください。' printf'形式の書式設定文字列で '%'記号をエスケープする方法です。 –