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

SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-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, sodass Felder wie Revisionsnummer und URL in einer Textdatei gespeichert werden, müssen Sie eine Schablone QuellVersionDatei und eine Ausgabedatei ZielVersionDatei 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 Datei .subwcrevignore die folgenden Zeilen enthalten:

/trunk/doc
/trunk/doc/*

Oder unter der Annahme, dass sich die Datei .subwcrevignore 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 unterscheiden Groß-/Kleinschreibung, genau wie bei Subversion.

Tipp

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

Es gibt mehrere Kommandozeilenoptionen, die die Arbeitsweise von SubWCRev beeinflussen. Wenn Sie mehrere Optionen verwenden, müssen diese 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, wenn 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 enthält, die nicht ignoriert werden.
-mMit dieser Option gibt SubWCRev ERRORLEVEL 8 zurück, wenn 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, wenn die Zieldatei bereits existiert.
-fMit dieser Option wird SubWCRev die zuletzt geänderte 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, wenn diese auf das gleiche Projektarchiv verweisen. Die Vorgabe ist, externe Verweise zu ignorieren.
-EWenn dieser Schalter wie in -e angegeben ist, werden jedoch die Externals mit expliziten Revisionen ignoriert, wenn der Revisionsbereich in ihnen nur die angegebene explizite Revision in den Eigenschaften ist. 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 Schalter -n.
8Die Arbeitskopie enthält gemischte Revisionen. Dies erfordert den Schalter -m.
9Die Ausgabedatei ist bereits vorhanden. Dies erfordert den Schalter -d.
10Der angegebene Pfad ist keine Arbeitskopie oder ein Teil davon.
11Die Arbeitskopie enthält nicht versionierte Dateien oder Ordner. Dies erfordert den Schalter -N.