Der Titel mag seltsam klingen, aber ich versuche Folgendes zu erreichen:
Speicherort des SVN-Repository: /home/flx/svn/flxdev SVN-Repository-Struktur „flxdev“:
+ Project1
++ files
+ Project2
+ Project3
+ Project4
Ich versuche, einen Post-Commit-Hook einzurichten, der am anderen Ende automatisch ausgecheckt wird, wenn ich ein Commit ausführe.
Im Post-Commit-Dokument ist Folgendes explizit aufgeführt:
# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit. Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-commit' (for which this file is a template) with the
# following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] REV (the number of the revision just committed)
Also habe ich zum Testen den folgenden Befehl eingegeben:
REPOS="$1"
REV="$2"
echo "Updated project $REPOS to $REV"
Wenn ich jedoch beispielsweise Dateien in Project1 bearbeite, wird Folgendes ausgegeben:„Projekt /home/flx/svn/flxdev auf 1016 aktualisiert“
Ich hätte gerne Folgendes:„Projekt Project1 auf 1016 aktualisiert“
Mit dieser Variable kann ich angeben, dass nach dem Commit unterschiedliche Aktionen pro Projekt ausgeführt werden sollen. Wie kann ich den Projektparameter angeben?
Danke!
Dennis
Antwort1
Verwenden svnlook
.
Am einfachsten wäre es, etwas wie Folgendes auszuprobieren:
REPOS="$1"
REV="$2"
CHANGED_DIRS="`/usr/bin/svnlook -r $REV dirs-changed $REPOS`"
echo "Updated paths $CHANGED_DIRS in revision $REV"
Sie können versuchen, auszuführen svnlook help
. Dabei werden die verschiedenen verwendbaren Befehle bzw. die verfügbaren Informationen aufgelistet.