2009-10-26 8 views
4

Y a-t-il une commande svn ou svnadmin qui affiche la révision d'un dépôt local? J'aimerais pouvoir avoir un batch Windows ou un script PowerShell qui me permettrait de compresser le repo et de le nommer avec le rev pour envoyer un email.Obtenir le numéro de version du référentiel SVN

Le meilleur que je peux comprendre est de trouver le fichier le plus élevé dans [reporoot]\db\revs\0, mais il semble un peu maladroit et je ne sais pas si c'est fiable.

Répondre

7

(Éditer) svnversion n'est pas très bon car il se rapporte à la copie de travail, pas au référentiel. Concerne également la copie de travail.

=>svnlook youngest REPOS_PATH devrait le faire. Voir aussi svn redbook.

+1

svn info a un paramètre TARGET. TARGET peut être un chemin de copie de travail ou une URL de référentiel. –

3

svnversion est la commande que vous voulez. Exécutez svnversion --help pour une explication de la sortie.

+0

Ce lien devrait vous aider: http://svnbook.red-bean.com/en/1.5/svn.ref.svnversion.re.html – hexium

4

Vous pouvez également utiliser svn info ce qui présente l'avantage que vous n'avez pas besoin de l'exécuter quelque part dans la copie de travail (ou de fournir un chemin à une copie de travail) - vous pouvez lui transmettre une URL à la repo et il affiche diverses informations sur le référentiel, y compris le dernier numéro de révision. Par contre, svnversion afficherait le dernier numéro de révision de la copie de travail, mais il n'est pas nécessaire d'être identique à la révision du référentiel. Par ailleurs, svn info affiche plus de détails sur le référentiel que svnversion. Cela pourrait être un pro ou un con, selon votre utilisation.

0

Les réponses précédentes peuvent ne pas fonctionner avec toutes les versions de subversion, pas sûr si les anciennes versions de subversion prennent en charge la sortie analysée xml. Peut remplacer "Révision" pour une autre propriété info.

#this do an info split by new line split by : then get the second parameter where first parameter is equal to Revision 
$svnRevision = (svn info "somedirectoryorurl") | %{$_ -split '#'} | Where-Object {($_ -split ":")[0] -eq "Revision"} | %{($_ -split ":")[1].Trim()} 
Questions connexes