52

私はいつも、チェックイン(コミット)メールが、他の人がコードベース/リポジトリで行っている作業を追跡するのに非常に役立つことを発見しました。コミットごとに配布リストを電子メールで送信するようにSVNを設定するにはどうすればよいですか?

私はWindowsでクライアントを実行し、LinuxでApacheSubversionサーバーを実行しています。ただし、さまざまなプラットフォームに関する以下の回答は、他の人にも役立つ可能性があります。

4

16 に答える 16

31

コミット後のフックを使用します。ここにガイドがあります。

各コミット後に電子メールを送信するサンプルRubyスクリプトは次のとおりです。commit-email.rb

于 2008-08-11T16:35:18.887 に答える
20

スタンドアロンのSubversion通知ツール(Windowsのみ!) をご覧ください。コミット時に電子メールを送信することもできます。

于 2008-08-11T16:48:56.877 に答える
3

リポジトリフック、特にコミット後のフックに慣れておく必要があります。

于 2008-08-11T16:34:31.027 に答える
2

VisualSVN サーバーには、便利なコミット電子メール通知フックがありVisualSVNServerHooks.exeます。色付きの差分をサポートし、コミットが特定のリポジトリ パスに影響する場合にのみコミット通知を送信できます。

「VisualSVNサーバーでの電子メール通知の構成」を参照してください。

于 2013-10-09T11:19:15.043 に答える
1

どのプラットフォームですか?

Mac OS XIでは、 msmtpがインストールされ、リポジトリのフックの下にコミット後のスクリプトが作成されています。svn(またはwww)ユーザー用に.msmtprcファイルを設定する必要があります。

REPOS="`echo $1 | sed 's/\/{root of repository}//g'` "
REV="$2"
MSG=`/usr/local/bin/svn log -v -r HEAD https://localhost$REPOS`

/usr/local/bin/msmtp {list of recipients} <<EOF
Subject: SVN-Commit $REPOS#$REV
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit

$MSG
EOF

ニーズに合わせて作成して{root of repository}ください。{list of recipients}ここスウェーデン(åäö)には特殊文字がいくつかあるため、UTF-8を使用していることに注意してください。

于 2008-08-11T16:38:34.323 に答える
1

コミット後のフックについては、ここに関連する質問があります。個人的には、RSSフィードを取得できるものにメッセージを送信することを好みます。これは、コミットごとの電子メールが受信トレイをすぐに過負荷にするためです。

于 2008-08-11T17:32:03.763 に答える
1

RSSフィードで@MattMillerを出向。

WebSVNと呼ばれる便利なツールがあり、すべてのリポジトリのRSSフィードと、完全なコミットメッセージを含む個々のブランチ/タグ/フォルダを提供します。また、更新を実行して選択したエディターを開かなくても、ファイル履歴とコミット/差分をすばやく確認するための優れたWebインターフェイスです。

于 2008-08-11T22:22:55.767 に答える
1

他の誰かが言ったように、「どのプラットフォーム」。Windowsでは、これを行うための無料のコマンドラインSMTPメーラーである「blat」を、コミット後および別のバッチファイルとともに使用しました。

ポストコミットは次のようになります:(別のバッチファイルを呼び出すだけです)

 call d:\subversion\repos\rts\hooks\mail %1 %2

そして、mail.batは次のようになりました。

copy d:\subversion\repos\RTS\hooks\Commitmsg.txt %temp%\commit.txt
copy d:\subversion\repos\RTS\hooks\subjbase.txt %temp%\subject.txt
svnlook info -r %2 %1 >> %temp%\commit.txt
echo Revision %2 >> %temp%\commit.txt
svnlook changed -r %2 %1 >> %temp%\commit.txt
svnlook author -r %2 %1 >> %temp%\subject.txt
c:\utils\blat %temp%\commit.txt -t <me@my.email.com> -sf %temp%\subject.txt -server ServerName -f "SVN Admin <svn@my.email.com>" -noh2

SVNフックを作成する際の最大の落とし穴は、基本的に環境が設定されていない可能性があることです。つまり、exeパスや一時パスなどはありません。ただし、最近のSVNビルドでは改善されている可能性があります。

于 2008-08-11T22:31:32.193 に答える
1

Linuxサーバーで3つのステップで実行しました:

  1. メーリング リスト ( svn-notify@xy.com) を作成し、リストにユーザーを追加します。

  2. 編集/path_to_your_svn/svn/hooks/svn-notify/mailer.conf

    • to_addr = svn-notify@xy.com
    • from_addr = %(作成者)s@xy.com
    • commit_subject_prefix =[XY-SVN]
  3. /path_to_your_svn/svn/hooks/post-commit次の行をファイルに追加します。
    /path_to_your_svn/svn/hooks/svn-notify/mailer.py commit "$REPOS" "$REV" /path_to_your_svn/svn/hooks/svn-notify/mailer.conf
于 2014-05-30T10:04:47.500 に答える
1

buildbotを使用できます。チェックインが発生するたびに任意のアクションを実行できるツールです。これはフル機能の継続的インテグレーション システムですが、メールだけが必要な場合でも確実に処理できます。SVN を含むさまざまな SCM 用のプラグインがあります。

于 2008-09-17T04:59:25.083 に答える
1

これに似たポストコミット スクリプトを使用します

素敵な HTML メールを送信します。削除されたコードを赤で強調表示し、追加されたコードを青で強調表示するように更新しました。

于 2008-08-25T20:46:24.203 に答える
1

特定の Subversion ブランチの「hooks」ディレクトリには、作業を開始するための 9 つのテンプレート ファイルがあります。

キーポイント: サブバージョンは、名前が変更されるまでファイルを実行しません。UNIX で post-commit.tmpl を実行するには、名前を「post-commit」に変更します。Windows では、名前を「post-commit.bat」または「post-commit.exe」に変更します。「post-commit.tmpl」や「post-commit.sh」などの名前の場合、Subversion はファイルを実行しません。

また、subversion を実行する同じユーザーがファイルを実行できることを確認してください。

于 2010-08-17T20:26:34.123 に答える
0

Subversionソースに含まれているPerlで書かれた(大きな)例があります(ここで見ることができます)。

于 2008-08-11T16:39:47.363 に答える
0

また、Linux で動作するSVNMailer

于 2013-01-27T03:26:04.437 に答える