ここで説明されているように、私が取り組んでいるプロジェクトにコミット メールを設定したいと思います:
http://producingoss.com/en/vc.html#commit-emails
つまり、コミット後のフックを使用して、コミットのタイトル/ログと変更の差分を含むリストに電子メールを送信します。
Linux マシンでこれを設定する最も簡単な方法は何ですか?
ここで説明されているように、私が取り組んでいるプロジェクトにコミット メールを設定したいと思います:
http://producingoss.com/en/vc.html#commit-emails
つまり、コミット後のフックを使用して、コミットのタイトル/ログと変更の差分を含むリストに電子メールを送信します。
Linux マシンでこれを設定する最も簡単な方法は何ですか?
この質問は少し古いですが、Google からここに来る人のために私の意見を残しておきます。
ここに記載されている解決策を検討しました。私にとってはcommit-email.pl
、より簡単でより良い作業でした。ただし、両方のソリューションに適切なフォーマットが欠けていることがわかりました。
このように、このsvnnotify
パッケージは十分にフォーマット化され、色付けされた電子メールを生成するように思えます。
Debian/Ubuntu システムでは、次のように入力してインストールできます。
apt-get install libsvn-notify-perl
次に、Gmail アカウントにメールを送信する場合は、Gmail の CSS サポートがおかしいため、ここにあるパッチを適用することを強くお勧めします。つまり、次のことを意味します。
HTML.pm
してColorDiff.pm
/usr/share/perl5/SVN/Notify/HTML.pm
それぞれとに置き換え/usr/share/perl5/SVN/Notify/HTML/ColorDiff.pm
ます。最後に、post-commit
通常の方法でフック スクリプトをセットアップします。
# email notifications for commits
/usr/bin/svnnotify --repos-path "$REPOS" --revision "$REV" \
--to your.email@address.com \
--from from.email@address.com \
--with-diff \
--subject-cx \
--subject-prefix 'Your Project Name: ' \
--handler HTML::ColorDiff \
--css-inline
2>&1 &
exit 0
新しいリポジトリを作成する場合、ポストコミット フックのサンプルが に用意されていhooks/post-commit.tmpl
ます。多かれ少なかれ次のような行が含まれています。
/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" commit-watchers@example.org
電子メールを通知の送信先アドレスに置き換え、スクリプトの名前を(拡張子hooks/post-commit
を削除して) 変更し、実行可能 ( ) にします。tmpl
chmod a+x
引数を指定せずにスクリプトを実行するcommit-email.pl
と、件名や差出人アドレスなどを変更できる追加オプションを含む使用画面が表示されます。
commit-email.pl
Debian の場合、スクリプトはオプションのsubversion-tools
パッケージにあることに注意してください。
これにはsvnmailerを使用します。リポジトリ固有のpost-commit
フック スクリプトを svnmailer を呼び出す単一のスクリプトにシンボリック リンクします。設定は非常に簡単で、simple.conf
設定例を使用すると、数分で起動して実行できます。これは Python で記述されているため、インストールの前提条件であることに注意してください。
post-commit フック スクリプト全体は、ほんの数行です (post-commit フックで他のことを行うこともできますが、現在は行っていないことに注意してください)。
#!/bin/sh
CONFIG="/usr/local/svnmailer/default.conf"
MAILER="/usr/bin/svn-mailer"
# These are passed in by subversion
REPOS="$1"
REV="$2"
"${MAILER}" --commit \
--config "${CONFIG}" \
--repository "${REPOS}" \
--revision "${REV}" \
--background