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.
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.
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,…).
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.)
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
.