web-dev-qa-db-fra.com

Obtenez tous les noms de branches en SVN

Comment obtenir la liste de toutes les branches SVN âgées de plus de x ans?

J'utilise SVN sur CentOS , et j'ai sventon pour afficher tout le référentiel.

52
user1164061
  • svn help ls

Si vous utilisez l'URL de la racine des branches du référentiel avec une sortie détaillée, vous obtiendrez quelque chose comme ceci:

svn ls http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/ --verbose
     28 lazybadg              фев 22  2011 ./
     28 lazybadg              фев 22  2011 Leichtbau-Deutsch/
     26 lazybadg              фев 22  2011 branche-francaise/
     25 lazybadg              сен 14  2010 i18n/

Le champ 3 + 4 + 5 dans gawk vous indiquera la date de dernière modification de la branche.

  • svn help log

Sortie légèrement plus complexe et bruyante avec un seul avantage: une date lisible,

svn log http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/ -v -q
------------------------------------------------------------------------
r28 | lazybadger | 2011-02-22 09:24:04 +0600 (Вт, 22 фев 2011)
Changed paths:
   M /branches/Leichtbau-Deutsch/Hello.de.txt
------------------------------------------------------------------------
r27 | lazybadger | 2011-02-22 09:21:41 +0600 (Вт, 22 фев 2011)
Changed paths:
   A /branches/Leichtbau-Deutsch (from /trunk:26)
------------------------------------------------------------------------
r26 | lazybadger | 2011-02-22 06:49:41 +0600 (Вт, 22 фев 2011)
Changed paths:
   A /branches/branche-francaise (from /trunk:25)
   M /branches/branche-francaise/Hello.fr.txt
------------------------------------------------------------------------

| grep -v "|" pour exclure la ligne de séparation, avec <n'importe quel outil de choix>, obtenez la branche affectée des noms de fichiers "Chemins modifiés", datez de la première chaîne du journal de révision.

82
Lazy Badger

Vous pouvez toujours utiliser "--xml" au lieu de "--verbose" resp. "-v". Donne une sortie lisible par machine, par opposition à une "sortie lisible par l'homme" donnée par "--verbose". Pas besoin de supprimer les lignes de séparation, etc. Extrayez ce dont vous avez besoin en utilisant xmlstarlet ou un script XQuery approprié (Saxon,…).

3
Jochen Hayek

En combinant la réponse de @ Lazy et cette réponse en utilisant la substitution de commande, vous pouvez tout mettre en une: 

svn ls `svn info | grep '^URL' | awk '{sub(/trunk.*$/, "branches", $NF); print}'` -v

(Dépend de votre mise en page svn repo, changez-la si nécessaire.) 

2
Jens

J'ai trouvé un autre moyen de le faire, mais vous avez besoin de sventon ou d'un autre outil répertoriant tout le contenu de votre référentiel SVN.

Étape 1: depuis votre vue sventon, copiez la liste des branches. Cela comprend la révision, l'auteur et la date.

Étape 2: Ouvrez Excel et effectuez une opération spéciale de collage.

Étape 3: Filtrez la colonne de dates pour afficher les dates de moins de x ans.

Résultat: Toutes les branches qui ont moins de x ans. Cette liste m'a été utile pour faire un svn delete --targets listofoldbranchnames.txt.

0
user1164061