Chapitre 6. Le programme SubWCRev

Table des matières

La ligne de commande SubWCRev
Substitution de mot-clés
Exemple de mot-clé
Interface COM

SubWCRev est un programme console Windows qui peut être utilisé pour lire le statut d'une copie de travail Subversion et exécuter facultativement la substitution de mots-clé dans un fichier modèle. C'est souvent utilisé comme une partie du processus de génération comme un moyen d'incorporer l'information de la copie de travail dans l'objet que vous générez. Typiquement cela pourrait être utilisé pour inclure le numéro de révision dans une boîte d'« À propos ».

La ligne de commande SubWCRev

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]
      

CheminCopieTravail est le chemin de la copie de travail étant vérifiée. Vous pouvez seulement utiliser SubWCRev sur les copies de travail, et pas directement sur le dépôt. Le chemin peut être absolu ou relatif au répertoire de travail courant.

Si vous voulez que SubWCRev exécute la substitution de mots-clé, pour que les champs comme la révision du dépôt et l'URL soient sauvegardées dans un fichier texte, vous devez fournir un fichier modèle FichierVersionSrc et un fichier de sortie FichierVersionDst qui contient la version substituée du modèle.

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

Important

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

Astuce

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

Un grand nombre d'options peuvent changer la manière dont SubZCRev fonctionne. Si vous en utilisez plus d'une, elles doivent etre spécifiées dans un même groupe, par exemple nm et non pas -n -m.

Tableau 6.1. Liste des commutateurs de ligne de commande disponibles

Aller sur...Description
-nSi ce commutateur est renseigné, SubWCRev se fermera avec ERRORLEVEL 7 si la copie de travail contient des modifications locales. Cela peut être utile pour empêcher une compilation incluant des changements non livrés.
-NIf this switch is given, SubWCRev will exit with ERRORLEVEL 11 if the working copy contains unversioned items that are not ignored.
-mSi ce commutateur est renseigné, SubWCRev se fermera avec ERRORLEVEL 8 si la copie de travail contient des révisions mélangées. Cela peut être utile pour empêcher la compilation d'une version partiellement mise à jour.
-dSi ce commutateur est donné, SubWCRev sortira avec ERRORLEVEL 9 si le fichier de destination existe déjà .
-fSi ce commutateur est donné, SubWCRev inclura la dernière révision changée des dossiers. Le comportement par défaut consiste à utiliser seulement les fichiers lors de l'obtenant des numéros de révision.
-eSi ce commutateur est donné, SubWCRev examinera les répertoires qui sont inclus avec svn:externals, mais seulement s'ils sont du même dépôt. Le comportement par défaut est d'ignorer les références externes.
-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.
-xSi ce commutateur est donné, SubWCRev renverra les numéro de révision en héxadécimal.
-XSi ce commutateur est donné, SubWCRev renverra les numéros de révision en héxadécimal, préfixés de '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.


S'il n'y a pas d'erreur, SubWCRev renvoie zéro. Mais dans le cas où une erreur survient, le message d'erreur est écrit sur la sortie d'erreur standard et affiché dans le console. Et les codes d'erreur renvoyés sont :

Tableau 6.2. Liste des codes d'erreur de SubWCRev

Code d'ErreurDescription
1Erreur de syntaxe. Une ou plusieurs commandes sont invalides.
2Le fichier ou le dossier spécifié dans le ligne de commande est introuvable.
3Le fichier source n'a pas pu être ouvert, ou le fichier cible n'a pas pu être créé.
4Impossible d'allouer la mémoire. Cela peut arrivé si, par exemple, le fichier source est trop gros.
5Le fichier source ne peut pas être scanné correctement.
6Erreur SVN : Subversion a renvoyé une erreur quand SubWCRev a essayé d'obtenir des informations de la copie de travail.
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.
10Le chemin spécifié n'est pas une copie de travail ou n'appartient à aucune.
11The working copy has unversioned files or folders in it. This requires the -N switch.