svnversion — Produire un numéro de révision compact pour la copie de travail.
svnversion est un programme qui produit un numéro de révision (ou un intervalle) à partir des révisions utilisées et des modifications effectuées sur la copie de travail. Le numéro de révision, ou l'intervalle, produit est écrit sur la sortie standard.
Il est d'usage d'utiliser ce résultat dans la chaîne de compilation pour définir le numéro de version d'un programme.
FIN_URL
, si elle est spécifiée,
est la partie de la fin de l'URL à utiliser pour déterminer si
CT_CHEMIN
a été ré-aiguillé
(normalement, la détection de ré-aiguillage pour
CT_CHEMIN
ne prend pas en compte
FIN_URL
).
Quand CT_CHEMIN
n'est pas
spécifié, le répertoire courant est utilisé.
FIN_URL
ne peut pas être spécifiée
si CT_CHEMIN
ne l'est pas.
De même que pour svnserve, svnversion n'a pas de sous-commande, seulement des options :
--no-newline
(-n
)
Pas de fin de ligne habituel en fin d'affichage.
--committed
(-c
)
Utilise la dernière révision propagée plutôt que les révisions courantes (c'est-à-dire les plus récentes disponibles localement).
--help
(-h
)
Affiche l'aide du programme.
--version
Affiche la version de svnversion et termine sans erreur.
Si la copie de travail est issue d'une unique révision (par exemple, immédiatement après une mise à jour par svn update), alors le numéro de révision correspondant est affiché :
$ svnversion 4168
Vous pouvez ajouter FIN_URL
pour être sûr que la copie de travail n'a pas été ré-aiguillée
ailleurs que ce que vous pensez. Notez que
CT_CHEMIN
est indispensable dans
ce cas :
$ svnversion . /var/svn/trunk 4168
Pour une copie de travail qui utilise des révisions multiples, l'intervalle des révisions utilisées localement est affiché :
$ svnversion 4123:4168
Si la copie de travail contient des modifications locales, un "M" est ajouté à la fin :
$ svnversion 4168M
Si la copie de travail a été re-aiguillée (avec la sous-commande svn switch), un "S" (pour switched) est ajouté à la fin :
$ svnversion 4168S
Ainsi, voici le résultat pour une copie de travail issues de plusieurs révisions, re-aiguillée et qui contient des modifications locales :
$ svnversion 4212:4168MS
Si la commande svnversion est invoquée sur un répertoire qui n'est pas une copie de travail, elle considère que c'est un export d'une copie de travail et affiche "exporté" :
$ svnversion exporté