in jedem Repository gibt es ein hooks
-Verzeichnis. Darin liegen Templates für post-commit
, start-commit
, ... Aktionen.
Zum Verwenden einfach post-commit.tmpl
ummoven in post-commit
. Danach wird der Inhalt des Skripts automatisch nach jedem commit ausgeführt.
Ein funktionierendes (und für die svn46 vorkonfiguriertes) commit-email.pl
Skript findet sich unter https://svn46.in.tum.de/intern/commit-email.pl
# cd ~svn/svnroot/<RepositoryName>/hooks # mv post-commit.tmpl post-commit # wget https://svn46.in.tum.de/intern/commit-email.pl # chmod ug+x commit-email.pl # chmod ug+x post-commit
Außerdem muessen im post-commit
absolute Pfade verwendet werden. Die Standard-Angaben funktionieren also nicht.
Also:
commit-email.pl "$REPOS" "$REV" commit-watchers@example.org
&aauml;ndern in:
$REPOS/hooks/commit-email.pl "$REPOS" "$REV" -s "[SVN-Commit]" "<LOGIN>@in.tum.de"
Optional kann dem commit-email.pl
Skript mit -m RegEx
ein regulärer Ausdruck übergeben werden. Matcht dieser reguläre Ausdruck auf den Pfad des Commits wird eine Mail verschickt, sonst nicht!.
Weitere Optionen:
usage (commit mode): ./commit-email.pl REPOS REVNUM [[-m regex] [options] [email_addr ...]] ... usage: (revprop-change mode): ./commit-email.pl --revprop-change REPOS REVNUM USER PROPNAME [-d diff_file] \ [[-m regex] [options] [email_addr ...]] ... options are: --from email_address Email address for 'From:' (overrides -h) -h hostname Hostname to append to author for 'From:' -l logfile Append mail contents to this log file -m regex Regular expression to match committed path -r email_address Email address for 'Reply-To:' -s subject_prefix Subject line prefix --diff y|n Include diff in message (default: y) (applies to commit mode only) --stdout Spit the message in mbox format to stdout. This script supports a single repository with multiple projects, where each project receives email only for actions that affect that project. A project is identified by using the -m command line option with a regular expression argument. If the given revision contains modifications to a path that matches the regular expression, then the action applies to the project. Any of the following -h, -l, -r, -s and --diff command line options and following email addresses are associated with this project. The next -m resets the -h, -l, -r, -s and --diff command line options and the list of email addresses. To support a single project conveniently, the script initializes itself with an implicit -m . rule that matches any modifications to the repository. Therefore, to use the script for a single- project repository, just use the other command line options and a list of email addresses on the command line. If you do not want a rule that matches the entire repository, then use -m with a regular expression before any other command line options or email addresses. 'revprop-change' mode: The message will contain a copy of the diff_file if it is provided, otherwise a copy of the (assumed to be new) property value.