Anhang D. TortoiseSVN automatisieren

Inhaltsverzeichnis

TortoiseSVN Befehle
TortoiseIDiff Befehle

Da alle Befehle von TortoiseSVN über Kommandozeilenparameter beeinflusst werden können, haben Sie die Möglichkeit automatische Prozessen mit Batch Skripten zu erstellen oder Dialoge aus anderen Programmen (z.B. Ihrem Lieblingseditor) heraus aufzurufen.

Wichtig

Beachten Sie, dass TortoiseSVN eine graphische Anwendung ist und dass diese Automatisierungsanleitung Ihnen erklärt, wie man die Dialoge von TortoiseSVN zur Abfrage von Benutzereingaben verwendet. Wenn Sie ein Skript schreiben wollen, das keine Eingaben erfordert, sollten Sie dafür das offizielle Subversion Kommandozeilenprogramm verwenden.

TortoiseSVN Befehle

Das TortoiseSVN GUI Programm heißt TortoiseProc.exe. Alle Befehle werden in der Form /command:abcd angegeben, wobei abcd der - erforderliche - Befehlsname ist. Die meisten Befehle benötigen zumindest einen Parameter, der in der Form /path:"some\path" übergeben wird. In der folgenden Tabelle bezieht sich der Befehl auf den /command:abcd Parameter und der Pfad auf den /path:"some\path" Parameter.

Da einige Befehle eine Liste von Zielpfaden akzeptieren (z.B. Übertragen mehrerer Dateien), kann der /path Parameter mehrere, durch * getrennte Pfade enthalten.

TortoiseSVN verwendet Temporärdateien, um Parameter zwischen der Shell-Erweiterung und dem Hauptprogramm zu übergeben. Ab der Version 1.5.0 von TortoiseSVN, entfällt der /notempfile Parameter und muss nicht mehr angegeben werden.

Der Fortschrittsdialog, der für Übertragungen, Aktualisierungen und viele weitere Aktionen verwendet wird, bleibt normalerweise geöffnet nachdem die Aktion beendet ist bis der Anwender die OK Schaltfläche betätigt. Dieses Verhalten kann durch Auswahl der entsprechenden Option in den Einstellungen verändert werden. Die Verwendung dieser Einstellung wird den Dialog, unabhängig davon ob der Befehl aus dem TortoiseSVN Kontextmenü oder aus einer Batchdatei heraus aufgerufen wurde, schließen.

Um einen anderen Ort für die Konfigurationsdatei anzugeben, verwenden Sie den /configdir:"path\to\config\dir" Parameter. Dies überschreibt alle Vorgaben, auch die aus der Registrierung.

Um den Fortschrittsdialog am Ende einer Aktion automatisch zu schließen, ohne die Standardeinstellung zu berücksichtigen, können Sie den /closeonend Parameter übergeben.

  • /closeonend:0 Den Dialog nicht automatisch schließen.

  • /closeonend:1 Schließen, wenn keine Fehler aufgetreten sind.

  • /closeonend:2 Schließen, wenn keine Fehler und keine Konflikte aufgetreten sind.

  • /closeonend:2 Schließen, wenn keine Fehler, Konflikte und Zusammenführungen aufgetreten sind.

  • /closeonend:2 Schließen, wenn keine Fehler, Konflikte und Zusammenführungen bei lokalen Operationen aufgetreten sind.

Die untenstehende Tabelle listet alle Befehle, die mittels TortoiseProc.exe ausgeführt werden können. Wie oben beschrieben, müssen sie in der Form /command:abcd aufgerufen werden. In der Tabelle wird der /command Präfix weggelassen, um Platz zu sparen.

Tabelle D.1. Liste der Befehle und Parameter

BefehlBeschreibung
:aboutÖffnet den „Über TortoiseSVN“-Dialog. Dies ist das Standardverhalten, wenn kein Befehl angegeben wird.
:logÖffnet den Log-Dialog. Der /path definiert die Datei oder den Ordner, für den das Log angezeigt werden soll. Drei weitere Optionen können angegeben werden: /startrev:xxx, /endrev:xxx und /strict
:checkoutÖffnet den „Auschecken“-Dialog. /path legt das Zielverzeichnis fest und /url definiert die URL von der ausgecheckt werden soll.
:importÖffnet den „Import“-Dialog. Der /path bezeichnet das Verzeichnis mit den zu importierenden Daten.
:updateAktualisiert die Arbeitskopie in /path zur HEAD Revision. Bei Angabe von /rev wird ein Dialog angezeigt, in dem der Anwender angeben kann, zu welcher Revision aktualisiert werden soll. Um die Anzeige des Dialogs zu vermeiden, geben Sie eine Revisionsnummer an /rev:1234. Weitere Optionen sind /nonrecursive und /ignoreexternals.
:commitÖffnet den Übertragen-Dialog. Der /path gibt das Zielverzeichnis oder die Liste der zu übertragenden Dateien an. Sie können mit Hilfe des /logmsg Parameters eine Logmeldung übergeben oder, falls Sie das nicht per Kommandozeile tun wollen, /logmsgfile:path verwenden, wobei path auf eine Datei zeigt, die die Logmeldung enthält. Falls Sie ein Fehlerverfolgungssystem nutzen, können Sie das Eingabefeld für die Fehler-ID mittels /bugid:"Hier liegt der Fehler" vorbelegen.
:addFügt die Datei(en) in /path der Versionskontrolle hinzu.
:revertMacht lokale Änderungen in der Arbeitskopie rückgängig. Der /path gibt die Objekte an.
:cleanupRäumt die Hinterlassenschaften unterbrochener oder fehlgeschlagener Operationen auf und entsperrt die Arbeitskopie in /path.
:resolveMarkiert den Konflikt der in /path angegebenen Datei als gelöst. Bei Angabe von /noquestion wird der Konflikt ohne Rückfrage aufgelöst.
:repocreateErstellt ein Projektarchiv in /path
:switchÖffnet den „Wechseln Zu“-Dialog. Der /path bezeichnet das Zielverzeichnis.
:exportExportiert die Arbeitskopie in /path in ein anderes Verzeichnis. Wenn /path auf ein nicht versioniertes Verzeichnis zeigt, wird ein Dialog angezeigt, der eine URL erfragt, die in das in /path angegebene Verzeichnis exportiert wird.
:mergeÖffnet den Zusammenführen-Dialog. Der /path bezeichnet das Zielverzeichnis.
:mergeallÖffnet den „Alle Zusammenführen“-Dialog. Der /path bezeichnet das Zielverzeichnis.
:copyÖffnet den Verzweigen/Markieren-Dialog. Der /path gibt die Arbeitskopie an. Der /url ist die Ziel URL. Sie können mit dem /logmsg Parameter eine Logmeldung übergeben oder, falls Sie das nicht per Kommandozeile tun wollen, /logmsgfile:path verwenden, wobei path auf eine Datei zeigt, die die Logmeldung enthält.
:settingsÖffnet den Einstellungsdialog
:removeEntfernt die Datei(en) in /path aus der Versionskontrolle.
:renameBenennt die Datei in /path um. Der neue Dateiname wird über einen Dialog abgefragt. Um die Frage nach dem Umbenennen ähnlicher Dateien in einem Schritt zu umgehen, übergeben Sie /noquestion.
:diffStartet das externe, in den TortoiseSVN Einstellungen angegebene Vergleichsprogramm. Der /path spezifiziert die erste Datei. Bei Angabe von /path2, werden diese beiden Dateien verglichen. Ohne Angabe von /path2, wird die Datei in /path mit ihrer BASE Revision verglichen. Um die Revisionsnummern vorzugeben, verwenden Sie /startrev:xxx und /endrev:xxx. Wenn /blame, aber nicht /path2 angegeben ist, wird der Vergleich durchgeführt, indem zunächst die Dateien in den gegebenen Revisionen annotiert werden.
:showcompare

Abhängig von den URLs und den zu vergleichenden Revisionen wird entweder ein Standard-Diff (falls die unified Option gesetzt ist), ein Dialog mit einer Liste der geänderten Dateien oder, falls die URLs auf Dateien zeigen, das Vergleichsprogramm mit diesen Dateien angezeigt.

Die Optionen url1, url2, revision1 und revision2 müssen angegeben werden. Die Optionen pegrevision, ignoreancestry, blame und unified sind optional.

:conflicteditorStartet den in der TortoiseSVN Einstellungen angegebenen Konflikteditor mit der konfliktbehafteten Datei in /path.
:relocateZeigt den „Umplatzieren“-Dialog. Der /path bezeichnet die umzuplatzierende Arbeitskopie.
:helpÖffnet die Hilfedatei
:repostatusÖffnet den „Prüfe auf Änderungen“-Dialog. Der /path bezeichnet die Arbeitskopie.
:repobrowserStartet den Projektarchivbetrachter mit der URL der in /path oder /path angegebenen Arbeitskopie. Mit der Option /rev:xxx kann die vom Projektarchivbetrachter anzuzeigende Revision festgelegt werden. Ohne /rev:xxx, wird die HEAD Revision angezeigt. Falls /path auf eine URL zeigt, wird durch /projectpropertiespath:path/to/wc der Pfad festgelegt, aus dem die Projekteigenschaften gelesen und angewendet werden.
:ignoreFügt alle Objekte in /path zur Liste der ignorierten Dateien hinzu, das heißt für alle Objekte wird die svn:ignore Eigenschaft gesetzt.
:blame

Öffnet den Annotieren-Dialog mit der in /path angegebenen Datei.

Wenn die Optionen /startrev und /endrev angegeben sind, wird der Dialog zur Abfrage des Revisionsbereiches nicht angezeigt, sondern die angegebenen Revisionen verwendet.

Wenn die Option /line:nnn angegeben ist, wird TortoiseBlame die Datei in dieser Zeile positionieren.

Die Optionen /ignoreeol, /ignorespaces und /ignoreallspaces werden ebenfalls unterstützt.

:catSpeichert eine Datei von einer /path angegebenen Arbeitskopie oder URL an der in /savepath:path spezifizierten Stelle. Eine Revision kann in /revision:xxx angegeben werden, um eine Datei in einer bestimmten Revision zu holen.
:createpatchErzeugt eine Patchdatei für den in /path angegebenen Pfad.
:revisiongraphZeigt den Revisionsgraphen für den in /path angegebenen Pfad.
:lockSperrt eine oder alle Dateien in einem Verzeichnis. Der „Sperren“-Dialog wird angezeigt, damit der Anwender einen Kommentar für die Sperre eingeben kann. /path
:unlockEntsperrt eine oder alle Dateien in einem Verzeichnis. /path
:rebuildiconcacheRekonstruiert den Windows Symbolspeicher. Verwenden Sie diese Funktion nur, wenn die Windows Symbole beschädigt sind. Ein nicht vermeidbarer Seiteneffekt dieser Aktion ist, dass die Desktopsymbole neu arrangiert werden. /noquestion
:propertiesZeigt den Eingenschaftsdialog für den in /path angegebenen Pfad.


Beispiele (die auf einer Zeile eingegeben werden sollten):

TortoiseProc.exe /command:commit
                 /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
                 /logmsg:"test log message" /closeonend:0

TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0

TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
                 /startrev:50 /endrev:60 /closeonend:0