kostenloser Webspace werbefrei: lima-city


SVN: Start-Commit Hook erfüllt seinen Zweck nicht

lima-cityForumHeim-PCSoftware

  1. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!