Subversion/Hooks: Unterschied zwischen den Versionen
Lars (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Lars (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 3: | Zeile 3: | ||
==Implementation== | ==Implementation== | ||
Das zentrale Script ''commit-notification.rb'' ist, wie man unschwer an der Dateiendung erkennt, ein Ruby-Script. Es versteht die vier Argumente ''-r'' (''--revision''), ''-d'' (''--repos''), ''-u'' (''--user'') und ''-p'' (''--password''). Die Parameter sind mandatory, sprich: ohne sie funktioniert es es nicht. Der verwendete Hook ''post-commit'' wird in der Datei ''/path/to/repository/hooks/post-commit'' spezifiziert und muss folgenden Inhalt haben: | Das zentrale Script ''commit-notification.rb'' ist, wie man unschwer an der Dateiendung erkennt, ein Ruby-Script. Es versteht die vier Argumente ''-r'' (''--revision''), ''-d'' (''--repos''), ''-c'' (''--config''), ''-u'' (''--user'') und ''-p'' (''--password''). Die Parameter sind mandatory, sprich: ohne sie funktioniert es es nicht. Der verwendete Hook ''post-commit'' wird in der Datei ''/path/to/repository/hooks/post-commit'' spezifiziert und muss folgenden Inhalt haben: | ||
<pre>#! /bin/sh | <pre>#! /bin/sh | ||
REPOS="$1" | REPOS="$1" | ||
REV="$2" | REV="$2" | ||
/usr/local/bin/subversion/commit-notification.rb --revision "$REV" --repos "$REPOS" --user 'jabberuser' --password 'jabbersecret'</pre> | /usr/local/bin/subversion/commit-notification.rb --revision "$REV" --repos "$REPOS" --config /home/user/path/to/file.ini --user 'jabberuser' --password 'jabbersecret'</pre> | ||
==Konfiguration== | ==Konfiguration== | ||
''notification.rb'' ist so implementiert, dass jeder User die von ihm gewünschten Einstellungen vornehmen kann. Dazu gehört sowohl die Angabe der Mail- und Jabberadresse, als auch die Art der Benachrichtigung (derzeitig: Jabber oder Mail). Die Einstellungen werden in der Datei '' | ''commit-notification.rb'' ist so implementiert, dass jeder User die von ihm gewünschten Einstellungen vornehmen kann. Dazu gehört sowohl die Angabe der Mail- und Jabberadresse, als auch die Art der Benachrichtigung (derzeitig: Jabber oder Mail). Die Einstellungen werden in der Datei ''datei.ini'' vorgenommen. Wie sich auch hier an der Dateiendung erkennen lässt, handelt es sich bei der Datei um ein Ini-File, die wie folgt aufgebaut ist: | ||
<pre>[mmustermann] | <pre>[mmustermann] | ||
name = Max Mustermann | name = Max Mustermann |
Version vom 16. Februar 2006, 01:53 Uhr
Wozu?
Subversion-Hooks lassen sich dazu verwenden, Benutzern über Jabber oder Mail über Veränderungen in Repositories zu informieren. Hooks sind allgemein gesprochen Einstiegspunkte, die eine bestimmte Software bietet.
Implementation
Das zentrale Script commit-notification.rb ist, wie man unschwer an der Dateiendung erkennt, ein Ruby-Script. Es versteht die vier Argumente -r (--revision), -d (--repos), -c (--config), -u (--user) und -p (--password). Die Parameter sind mandatory, sprich: ohne sie funktioniert es es nicht. Der verwendete Hook post-commit wird in der Datei /path/to/repository/hooks/post-commit spezifiziert und muss folgenden Inhalt haben:
#! /bin/sh REPOS="$1" REV="$2" /usr/local/bin/subversion/commit-notification.rb --revision "$REV" --repos "$REPOS" --config /home/user/path/to/file.ini --user 'jabberuser' --password 'jabbersecret'
Konfiguration
commit-notification.rb ist so implementiert, dass jeder User die von ihm gewünschten Einstellungen vornehmen kann. Dazu gehört sowohl die Angabe der Mail- und Jabberadresse, als auch die Art der Benachrichtigung (derzeitig: Jabber oder Mail). Die Einstellungen werden in der Datei datei.ini vorgenommen. Wie sich auch hier an der Dateiendung erkennen lässt, handelt es sich bei der Datei um ein Ini-File, die wie folgt aufgebaut ist:
[mmustermann] name = Max Mustermann mail = mmustermann@nu2m.de jabber = max@example.org project = repos_name, notification = mail,jabber
Wichtig ist dabei, dass die die Direktive project dem Namen des Repositories entspricht. Ebenso darf der Username (in eckigen Klammern notiert) nicht doppelt notiert sein.