Hoofdstuk 6. Het SubWCRev Programma

Inhoudsopgave

De SubWCRev Command Line
Trefwoordvervanging
Voorbeeld trefwoord
COM interface

SubWCrev is een Windows opdrachtprompt programma, welke gebruikt kan worden voor het uitlezen van de status van een Subversion werkkopie en optioneel trefwoordvervanging met een template bestand kan uitvoeren. Dit wordt meestal gebruikt als onderdeel van het bouwproces om informatie van de werkkopie mee te nemen in het object wat je aan het bouwer bent. Meestal wordt het gebruikt om het revisienummer op te nemen in het Over scherm.

De SubWCRev Command Line

SubWCRev reads the Subversion status of all files in a working copy, excluding externals by default. It records the highest commit revision number found, and the commit timestamp of that revision, it also records whether there are local modifications in the working copy, or mixed update revisions. The revision number, update revision range and modification status are displayed on stdout.

SubWCRev.exe is called from the command line or a script, and is controlled using the command line parameters.

SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]
      

WorkingCopyPath is het pad van de werkkopie die gecontroleerd moet worden. Je kunt SubWCRev alleen op werkkopieën gebruiken, niet direct op het archief. Het pad mag absoluut en relatief ten opzichte van de huidige werkmap zijn.

Als je SubWCRev trefwoordvervanging wilt laten uitvoeren, zodat bijvoorbeeld de velden archief revisie en URL in een bestand opgeslagen worden, dan moet je een template bestand SrcVersionFile en een resultaat bestand DstVersionFile voor de ingevulde resultaten specificeren.

You can specify ignore patterns for SubWCRev to prevent specific files and paths from being considered. The patterns are read from a file named .subwcrevignore. The file is read from the specified path, and also from the working copy root. If the file does not exist, no files or paths are ignored. The .subwcrevignore file can contain multiple patterns, separated by newlines. The patterns are matched against the paths relative to the repository root and paths relative to the path of the .subwcrevignore file. For example, to ignore all files in the doc folder of the TortoiseSVN working copy, the .subwcrevignore would contain the following lines:

/trunk/doc
/trunk/doc/*

Or, assuming the .subwcrevignore file is in the working copy root which is checked out from trunk, using the patterns

doc
doc/*

is the same as the example above.

To ignore all images, the ignore patterns could be set like this:

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

Belangrijk

The ignore patterns are case-sensitive, just like Subversion is.

Tip

To create a file with a starting dot in the Windows explorer, enter .subwcrevignore.. Note the trailing dot.

There are a number of optional switches which affect the way SubWCRev works. If you use more than one, they must be specified as a single group, e.g. -nm, not -n -m.

Tabel 6.1. Lijst met beschikbare opdrachtregel opties

OptieBeschrijving
-nAls deze optie gebruikt wordt, zal SubWCRev stoppen met ERRORLEVEL 7 als de werkkopie lokale wijzigingen heeft. Dit kan gebruikt worden om te voorkomen dat er een pakket gebouwd wordt met niet vastgelegde wijzigingen.
-NIf this switch is given, SubWCRev will exit with ERRORLEVEL 11 if the working copy contains unversioned items that are not ignored.
-mAls deze optie gebruikt wordt, zal SubWCRev stoppen met ERRORLEVEL 8 als de werkkopie meerdere revisies bevat. Dit kan gebruikt worden om te voorkomen dat er een pakket gebouwd wordt met een gedeeltelijk bijgewerkte werkkopie.
-dAls deze optie gebruikt wordt, zal SubWCRev stoppen met ERRORLEVEL 9 als het doel bestand al bestaat.
-fAls deze optie gebruikt wordt, zal SubWCRev ook de laatst gewijzigde revisie van de mappen ophalen. Het standaard gedrag is zo dat alleen de revisienummers van bestanden opgehaald worden.
-eAls deze optie gebruikt wordt, zal SubWCRev mappen onderzoeken met svn:externals, maar alleen als ze van hetzelfde archief zijn. Standaard worden externen genegeerd.
-EIf this switch is given, same as -e, but it ignores the externals with explicit revisions, when the revision range inside of them is only the given explicit revision in the properties. So it doesn't lead to mixed revisions.
-xAls deze optie gebruikt wordt, zal SubWCRev het revisienummer in HEX formaat teruggeven.
-XAls deze optie gebruikt wordt, zal SubWCRev het revisienummer in HEX formaat teruggeven, vooraf gegaan door '0X'.
-FIf this switch is given, SubWCRev will ignore any .subwcrevignore files and include all files.
-qIf this switch is given, SubWCRev will perform the keyword substitution without showing working copy status on stdout.


If there is no error, SubWCRev returns zero. But in case an error occurs, the error message is written to stderr and shown in the console. And the returned error codes are:

Tabel 6.2. List of SubWCRev error codes

Error CodeBeschrijving
1Syntax error. One or more command line parameters are invalid.
2The file or folder specified on the command line was not found.
3The input file could not be opened, or the target file could not be created.
4Could not allocate memory. This could happen if e.g. the source file is too big.
5The source file can not be scanned properly.
6SVN error: Subversion returned with an error when SubWCRev tried to find the information from the working copy.
7The working copy has local modifications. This requires the -n switch.
8The working copy has mixed revisions. This requires the -m switch.
9The output file already exists. This requires the -d switch.
10The specified path is not a working copy or part or one.
11The working copy has unversioned files or folders in it. This requires the -N switch.