Kapitel 6. Das SubWCRev Programm

Inhaltsverzeichnis

Die SubWCRev Kommandozeile
Schlüsselwortersetzung
Beispiele für Schlüsselwörter
COM Schnittstelle

SubWCRev ist ein Windows Kommandozeilenprogramm, das dazu verwendet werden kann, den Status einer Subversion Arbeitskopie zu ermitteln und optional Schlüsselwörter in einer Vorlagendatei zu ersetzen. Dies wird häufig als Teil eines automatisierten Erstellungsprozesses verwendet, um Informationen über die Arbeitskopie in das erstellte Objekt einfließen zu lassen. Beispielsweise kann man damit die Revisionsnummer in einen Über...-Dialog einbetten.

Die SubWCRev Kommandozeile

SubWCRev liest den Subversion Status aller Dateien einer Arbeitskopie. Externals werden standardmäßig ausgeschlossen. Es ermittelt die höchste Revisionsnummer sowie deren Zeitstempel. Außerdem wird festgehalten, ob es lokale Änderungen in der Arbeitskopie sowie gemischte Revisionsnummern aus verschiedenen Aktualisierungen gibt. Die Revisionsnummer, der Revisionsbereich und der Änderungsstatus werden auf die Standardausgabe ausgegeben.

SubWCRev.exe wird per Kommandozeile oder Skript aufgerufen und über die Kommandozeilenparameter

SubWCRevWorkingCopyPathSrcVersionFileDstVersionFile [-nmdfe]
      

gesteuert.

ArbeitsKopiePfad ist der Pfad der zu prüfenden Arbeitskopie. Sie können SubWCRev nur auf Arbeitskopien und nicht direkt auf Projektarchive anwenden. Der Pfad kann absolut oder relativ zum aktuellen Arbeitsverzeichnis sein.

Wenn Sie möchten, dass SubWCRev Schlüsselwortersetzungen durchführt, so dass Felder wie Revisionsnummer und URL in einer Textdatei gespeichert werden, müssen Sie eine Schablone QuellDatei und eine Ausgabedatei ZielDatei angeben, die die ersetzte Version der Schablone enthält.

Sie können Ausschlussmuster für SubWCRev festlegen, um bestimmte Dateien und Pfade zu ignorieren. Die Muster werden aus einer Datei namens .subwcrevignore gelesen. Die Datei wird im angegebenen Pfad und in der Wurzel der Arbeitskopie gesucht. Wird sie nicht gefunden, so werden auch keine Dateien oder Pfade ignoriert. Die Datei .subwcrevignore kann mehrere, durch Zeilenumbrüche getrennte, Muster enthalten. Die Muster werden relativ zur Wurzel der Arbeitskopie und relativ zur Datei .subwcrevignore angewendet. Um zum Beispiel sämtliche Dateien im doc Ordner der TortoiseSVN Arbeitskopie zu auszuschließen, würde die .subwcrevignore Datei die folgenden Zeilen enthalten:

/trunk/doc
/trunk/doc/*
Oder, unter der Annahme, dass sich die .subwcrevignore Datei in der Wurzel der von trunk ausgecheckten Arbeitskopie befindet, würden die Muster
doc
doc/*
das gleiche erreichen.

Um sämtliche Bilder auszuschließen, könnten die Muster folgendermaßen aussehen:

*.png
*.jpg
*.ico
*.bmp

Wichtig

Die Ausschlussmuster sind, wie Subversion Groß-/Kleinschreibungssensitiv.

Tipp

Um eine Datei mit einem führenden Punkt in Windes Explorer anzulegen, geben Sie .subwcrevignore. ein. Beachten Sie den angehängten Punkt.

Es gibt mehrere Kommandozeilenoptionen, die die Arbeitsweise von SubWCRev beeinflussen. Wenn Sie mehr als einen verwenden, müssen die Optionen in einer einzelnen Gruppe angegeben werden, z.B. -nm, nicht -n -m.

Tabelle 6.1. Liste der Kommandozeilenoptionen

WechselnBeschreibung
-nMit dieser Option gibt SubWCRev ERRORLEVEL 7 zurück, falls die Arbeitskopie lokale Modifikationen enthält. Damit kann das Erzeugen mit nicht übertragenen Änderungen vermieden werden.
-NMit dieser Option gibt SubWCRev ERRORLEVEL 11 zurück, wenn die Arbeitskopie unversionierte Objekte zurück, die nicht ignoriert werden.
-mMit dieser Option gibt SubWCRev ERRORLEVEL 8 zurück, falls die Arbeitskopie gemischte Revisionen enthält. Damit kann das Erzeugen mit einer nur teilweise aktuellen Arbeitskopie vermieden werden.
-dMit dieser Option gibt SubWCRev ERRORLEVEL 9 zurück, falls die Zieldatei bereits existiert.
-fMit dieser Option wird SubWCRev die zuletzt-geändert Revision von Ordnern beachten. Die Vorgabe ist, dass nur Dateien zum Ermitteln der Revisionsnummern herangezogen werden.
-eMit dieser Option wird SubWCRev Verzeichnisse überprüfen, die mittels svn:externals eingebunden wurden, falls diese auf dasselbe Projektarchiv verweisen. Die Vorgabe ist, externe Verweise zu ignorieren.
-EWenn dieser Schalter gesetzt ist, genau so wie -e, aber die Externals mit expliziten Revisionen werden ignoriert, [when the revision range inside of them is only the given explicit revision in the properties]. So werden gemischte Revisionen unterbunden.
-xWenn dieser Schalter angegeben wurde, gibt SubWCRev die Revisionsnummern in HEX aus.
-XMit dieser Option gibt SubWCRev die Revisionsnummern in HEX mit vorangestelltem '0X' aus.
-FMit dieser Option ignoriert SubWCRev sämtliche .subwcrevignore Dateien und schließt alle Dateien ein.
-qMit dieser Option wird SubWCRev die Schlüsselwörter ersetzen, ohne den Status der Arbeitskopie auf die Standardausgabe auszugeben.


Wenn kein Fehler vorliegt, gibt SubWCRev Null zurück. Falls ein Fehler auftritt, wird die Fehlermeldung nach stderr geschrieben und in der Konsole angezeigt. Die zurückgegebenen Fehlercodes sind:

Tabelle 6.2. Liste der SubWCRev Fehlercodes

FehlercodeBeschreibung
1Syntaxfehler. Mindestens ein Kommandozeilen-Parameter ist ungültig.
2Die/Der in der Befehlszeile angegebene Datei/Ordner wurde nicht gefunden.
3Die Eingabedatei konnte nicht geöffnet werden oder die Zieldatei konnte nicht erstellt werden.
4Konnte keinen Speicher reservieren. Dies könnte passieren, wenn z.B. die Quelldatei zu groß ist.
5Die Quelldatei kann nicht ordnungsgemäß gescannt werden.
6SVN-Fehler: Subversion gab einen Fehler zurück, als SubWCRev versuchte, die Informationen aus der Arbeitskopie zu ermitteln.
7Die Arbeitskopie enthält lokale Änderungen. Dies erfordert den -n Schalter.
8Die Arbeitskopie enthält gemischte Revisionen. Dies erfordert den -m Schalter.
9Die Ausgabedatei ist bereits vorhanden. Dies erfordert den -d Schalter.
10Der angegebene Pfad ist keine Arbeitskopie oder ein Teil davon.
11Die Arbeitskopie enthält nicht versionierte Dateien oder Ordner. Dies erfordert den -N Schalter.