SVN: Start-Commit Hook erfüllt seinen Zweck nicht
lima-city → Forum → Heim-PC → Software
aktuelle revision
code
datei
eigenschaft
einstellung
eintrag
fehler
jemand
leerer string
log
manuell aufrufe
output
pfad
problem
relative pfad
set
start
trunk
workstation
zweiten zeile
-
Hallo,
Ich versuche Clientseitig ein Start-Commit Hookscript zu implementieren, das mittels SubWCRev automatisch die Assemblyversion mit der SVN-Revision synchronisiert.
Anfangs habe ich dieses im Pre-Commit Hook (in den TortoiseSVN Settings) platziert, aber das war aus mehreren (teils offensichtlichen) Gründen ungünstig.
Darum will ich das Hookscript (bzw. die Einstellung) jetzt als Start-Commit Hook über eine EIgenschaft committen.
Wenn ich das Script manuell ausführe funktioniert es wunderbar. Im Pre-Commit Hook (von den TortoiseSVN Einstellungen aus) hat es auch funktioniert. Wenn es hingegen von der Start-Commit Eigenschaft aufgerufen wird, loggt es zwar die Meldung, dass alles funktioniert hat, aber die Assemblyversion wird nicht synchronisiert.
Das ist der Wert der tsvn:startcommithook Eigenschaft:
%REPOROOT%/trunk/workstation/_tools/ApplySVNRevision.cmd
Hier ist das Script:
@echo off set "root="%~dp0"" set "errorlevel=0" "%root%_Resources\SubWCRev.exe" "%~dp0.\.." "%~dp0\_Resources\AssemblyVersion.Template.cs" "%~dp0\..\AssemblyVersion.cs" if %errorlevel% == 0 goto success echo FEHLER: Der RevisionCounter konnte nicht aktualisiert werden >> ApplySvnRevision.log goto exit :success echo Der RevisionCounter wurde erfolgreich aktualisiert >> ApplySvnRevision.log echo Die aktuelle Revision wurde von "%~dp0\_Resources\AssemblyVersion.Template.cs" in die Datei "%~dp0\..\AssemblyVersion.cs" gespeichert >> ApplySvnRevision.log :exit echo Exited with code %errorlevel% >> ApplySvnRevision.log exit /b %errorlevel%
Hier noch ein Eintrag aus dem Log:
Der RevisionCounter wurde erfolgreich aktualisiert
Die aktuelle Revision wurde von "C:\Pfad\Zur\WorkingCopy\workstation\_tools\\_Resources\AssemblyVersion.Template.cs" in die Datei "C:\Pfad\Zur\WorkingCopy\workstation\_tools\\..\AssemblyVersion.cs" gespeichert
Exited with code 0
Kennt jemand dieses Problem oder weiß einfach so eine Antwort darauf?
Danke im Voraus!
Edit:
Eigenartig: Ich habe jetzt mal den Output des SubWCRev-Aufrufs ins Logfile umgeleitet.. Ergebnis: Wenn ich das Script manuell aufrufe ist alles wie erwartet. Wenn das Script im Hook aufgerufen wird, erscheint kein Output von SubWCRev.
Das wirklich irritierende daran ist, dass es ja auch keinen Fehlercode gibt... Ich versteh es einfach nicht.
LÖSUNG:
Das Problem lag an der zweiten Zeile im Script:
set "root="%~dp0""
Das Ergebnis davon ist ein leerer String. Somit funktioniert es nur, wenn man das Script direkt im Verzeichnis aufruft, da dann der relative Pfad stimmt.
Beitrag zuletzt geändert: 12.11.2013 13:51:36 von yorecords -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage