13 votes

Obtenir le numéro de révision actuel en ligne de commande via TortoiseSVN

J'essaie d'écrire un fichier batch dans lequel j'ai besoin de la révision HEAD du projet sur lequel je travaille.

Existe-t-il une commande pour obtenir cela à partir de la ligne de commande ?

Je suis sur une machine Windows XP.

EDIT J'ai fini par utiliser un mélange entre Shambulator, mizipzor, et les réponses de Stefan. Je me suis retrouvé avec ça :

for /f "tokens=5" %%i in ('SubWCRev WorkingCopyPath^|find "Last committed at revision"') do set version=%%i 
echo %version%

Merci pour votre aide.

J'ai également ajouté cette réponse à la liste ci-dessous.

1voto

Grant Points 305

Je sais que cette question est ancienne, mais c'est exactement ce que je cherchais, le seul problème étant que je n'ai pas réussi à faire fonctionner la réponse. Voici le bat script auquel j'ai abouti :

set SubWCRev=C:\Program Files\TortoiseSVN\bin\SubWCRev.exe
set WorkingCopyPath=%~dp0
for /f "tokens=5" %%i in ('""%SubWCRev%" "%WorkingCopyPath%.""') do set version=%%i
@echo Version=%version%

J'ai utilisé le répertoire dans lequel se trouvait le fichier bat comme dossier de rapport SVN, utilisez %~dp1 si vous voulez passer le répertoire comme paramètre.

0voto

the_mandrill Points 12530

Je ne pense pas qu'il y ait un moyen de faire cela directement à partir de la ligne de commande en utilisant tortoisesvn. Vous pouvez installer la version en ligne de commande à partir de Collabnet et ensuite utiliser une commande telle que celle-ci :

c:\>svn ls -v svn://server/Source
67336 user1                Jul 05 13:00 ./
67336 user1                Jul 05 13:00 Source/

0voto

John Pickup Points 21

Une autre approche possible. Si vous avez extrait le dépôt, alors le fichier .svn \entries a le numéro de révision dans la 4ème ligne. i.e.

head -4 entries | tail -1

vous donnera le numéro de révision.

Il n'est probablement pas très judicieux de l'utiliser car le format du fichier pourrait changer - cela dépend vraiment si le script est juste pour un usage personnel.

0voto

damkrat Points 327
svn info -rHEAD %cd%|find "Revision:"> %temp%\__svnrev.tmp
set /p revision=< %temp%\__svnrev.tmp
del %temp%\__svnrev.tmp
set revision=%revision:~10%
echo %revision%

changez %cd% dans la première ligne par le chemin souhaité

0voto

Daniel Rose Points 8024

Voici ma variante de Réponse de Shambulator au cas où vous n'auriez pas svn.exe dans votre PATH. Notez l'utilisation de guillemets pour gérer les espaces dans le chemin.

@echo off
set SVN_EXE=C:\Program Files (x86)\VisualSVN\bin\svn.exe

rem Find revision of entire repository
for /f "usebackq tokens=2" %%i in (`call "%SVN_EXE%" info -rHEAD https://svnroot/repo^|find "Revision"`) do @echo %%i

rem Find revision of a path in the repository
for /f "usebackq tokens=4" %%i in (`call "%SVN_EXE%" info -rHEAD https://svnroot/repo/project/trunk^|find "Last Changed Rev"`) do @echo %%i

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X