0

誰かがコミットするとき、作成者を送信者として設定したいです。このコードを次のように絞り込みましたpost-receive

send_mail()
{
        if [ -n "$envelopesender" ]; then
                /usr/sbin/sendmail -t -f "$envelopesender"
        else
                /usr/sbin/sendmail -t
        fi
}

そして、私はそれをelse条件に追加することでしたが、次のようなものだと思います

git log <SHA-1> --pretty=format:"%an<%ae>" -1

$newrevそして、shaには変数を使用すると思います。

私は自分のでそれほど新鮮ではありません。どうすればこれを実現できますか?

4

1 に答える 1

1

あなたはこれを行うことができるはずです:

send_mail()
{
    if [ -n "$envelopesender" ]; then
        /usr/sbin/sendmail -t -f "$envelopesender"
    else
        author="$(git --no-pager show -s --pretty="%an" $newrev)"
        email="$(git --no-pager show -s --pretty="%ae" $newrev | sed 's/ *$//g')"
        if [ -n "$email" ]; then
            /usr/sbin/sendmail -t -F "$author" -f "$email"
        fi
    fi
}

の場合git show:

  • git showよりもコミットに関する情報を抽出するためのより適切なコマンドのように見えますgit log。(あなたが使用できるさらに適切なものがあるかもしれません;))
  • --no-pagerページャ プログラムを開かないようにする
  • -sコミットのファイルと差分のリストをスキップします

の場合sendmail:

  • を使用して送信者名を設定します-F
  • を使用して送信者の電子メールを設定します-f
于 2013-03-18T23:37:33.350 に答える