Frage

Ich habe immer gefunden, Einchecken (commit) mails, die sehr nützlich für das halten Spur von dem, was andere Menschen tun, in der codebase / repository.Wie richte ich die SVN-E-Mail Verteilung Liste auf jeden commit?

Ich bin mit clients auf Windows-und die Apache-Subversion-server auf Linux.Die Antworten für die verschiedenen Plattformen wird wahrscheinlich nützlich sein, um andere Menschen, obwohl.

War es hilfreich?

Lösung

Verwenden Sie die post-commit-hooks.Hier ist eine guide.

Hier ist ein Beispiel-Ruby-Skript, das eine E-Mail sendet nach jedem commit: commit-E-Mail.rb

Andere Tipps

Haben Sie einen Blick auf die standalone - Subversion Benachrichtigen tool (Nur Windows!) Es kann E-Mail auf übernehmen und auch vieles mehr!

Möchten Sie vertraut machen mit repository-hooks, insbesondere die post-commit-hook.

1) Installieren Sie svnnotify auf einen svn-server mit sudo apt-get

2) Verwenden Sie den post-commit-hook auf Ihrer repo (Lesen Sie auf der post-commit-hooks auf svn website)

3) Öffnen Sie die post-commit-hook Datei und fügen Sie folgenden code zum senden einer E-Mail mit smtp-server.Mithilfe von smtp ist geradlinig, da Sie nicht brauchen, um die Konfiguration von sendmail.

4) vergewissern Sie sich nach \ (Zeilenumbruch) Sie verfügen nicht über einen extra Raum.

#!/bin/sh

REPOS="$1"
REV="$2"
TO="xyz@yah.com" # who will receive the notifications
FROM="hello@goog.com" # what will be in "FROM" fields


 /usr/bin/svnnotify \

--repos-path "$REPOS" \
--revision "$REV" \
--to $TO \
--from $FROM \
--reply-to $FROM \
--smtp "YOUR.SMTP.MAIL.COM" \
--subject-prefix "[svn commit]" \
--attach-diff -a \
--header 'Message generated on Subversion Check-in.' \
--footer 'OpenSource Team. ' \
--svnlook "/usr/local/bin/svnlook" \
--handler HTML::ColorDiff # make diff pretty

Es gibt eine Verwandte Frage hier auf der post-commit-hooks.Ich persönlich bevorzuge eine Nachricht senden, die etwas bekomme ich einen RSS-feed aus, als eine E-Mail-pro-verpflichten würde, überlast mein Posteingang ziemlich schnell.

Abstellung @Matt Miller auf RSS-feeds.

Es ist ein nützliches tool namens WebSVN das bietet Ihnen RSS-feeds von jedem repository und die einzelnen Zweige/tags/Ordner mit vollständigen commit-Nachrichten.Es ist auch eine gute web interface für schnell Suche im Datei-Geschichten und verpflichtet/diffs, ohne dass ein update und öffnen Sie Ihren editor der Wahl.

Wie jemand anderes sagte, 'Plattform'.Auf Windows habe ich verwendet 'blat', das ist ein freebie command line SMTP mailer um dies zu tun, zusammen mit einem post-commit-und eine andere batch-Datei.

Die post-commit-sieht aus wie diese:(Nur Anrufe eine andere batch-Datei)

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

Und E-mail.bat sah so aus:

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

Die größte gotcha schriftlich SVN Haken ist, dass Sie haben grundsätzlich KEINE Umgebung set-up - kein exe-Pfad, keine temp-Pfad, etc.Aber vielleicht ist verbessert in den letzten SVN-builds.

Sie könnte verwenden buildbot.Es ist ein Werkzeug, dass kann nehmen Willkür, wenn ein check-in erfolgt.Es ist ein full-featured continuous integration-system, aber wenn Sie wollen einfach nur E-Mails, Sie kann durchaus damit umgehen.Es hat plugins für eine Vielzahl von SCMs einschließlich SVN.

In der "Haken" - Verzeichnis Ihres speziellen subversion-Zweig gibt es 9 von template-Dateien, um Ihnen den Einstieg.

Schlüssel Punkt:subversion wird nicht führen Sie die Dateien, bis Sie umbenannt werden.To get post-commit.tmpl zur Ausführung unter unix, benennen Sie es "post-commit".Unter Windows benennen Sie es zu "post-commit.Fledermaus" oder "post-commit.exe".Subversion nicht führen Sie die Datei, wenn es heißt "post-commit.tmpl" oder "post-commit.sh" oder dergleichen.

Auch, stellen Sie sicher, dass die Datei ausführbar ist, die vom gleichen Benutzer läuft subversion.

Ich verwenden Sie einen post-commit-Skript ähnlich wie dieser eine.

Es sendet ein schönes HTML E-Mail.Ich aktualisierte es einige, wo es highlights-code wurde entfernt und roten highlights-code Hinzugefügt wurde, in blau.

VisualSVN Server verfügt über nützliche commit-e-mail-Benachrichtigung Haken VisualSVNServerHooks.exe.Es unterstützt farbigen diffs und senden können commit-Benachrichtigungen nur angezeigt werden, wenn Begehen, wirkt sich auf bestimmte repository-Pfad.

Finden "Konfigurieren von E-Mail-Benachrichtigungen in VisualSVN Server".

Ich habe es auf Linux-server in 3 Schritten:

  1. Erstellen Sie eine mailing-Liste (svn-notify@xy.com) und das hinzufügen von Personen zur Liste.

  2. Bearbeiten /path_to_your_svn/svn/hooks/svn-notify/mailer.conf

    • to_addr = svn-notify@xy.com
    • from_addr = %(Autor)s@xy.com
    • commit_subject_prefix =[XY-SVN]
  3. Fügen Sie diese Zeile zu Ihrer /path_to_your_svn/svn/hooks/post-commit Datei:
    /path_to_your_svn/svn/hooks/svn-notify/mailer.py commit "$REPOS" "$REV" /path_to_your_svn/svn/hooks/svn-notify/mailer.conf

Welche Plattform?

Unter Mac OS X habe ich installiert msmtp und schuf einen post-commit-Skript unter Haken in das repository.Ein .msmtprc-Datei Bedürfnisse zu werden setup für die svn (oder www- ) Benutzer.

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

Machen {root of repository} und {list of recipients} speziell für Ihre Bedürfnisse.Hinweis: ich habe verwendet UTF-8, da wir einige Sonderzeichen haben hier in Schweden (åäö).

Es ist ein (großer) Beispiel in Perl geschrieben sind enthalten in das Subversion-Quellcode (es kann sein hier).

Auch SVNMailer, die arbeiten auf Linux.

Überprüfen Sie die svn-mod-E-Mail Paket beschrieben hier.Die svn-mod-E-Mail ist ein leistungsfähiges Werkzeug für SVN-E-Mail-Benachrichtigungen-Verwaltung, die als Debian-Archiv.Es ist leicht zu installieren, zu konfigurieren und zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top