Wie bekomme ich die Liste aller SVN-Filialen, die älter als x Jahre sind?
Ich verwende SVN für CentOS und habe Sventon zum Anzeigen des gesamten Repositorys.
svn help ls
Wenn Sie die URL des Repository-Zweigs root mit ausführlicher Ausgabe verwenden, erhalten Sie etwa Folgendes:
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/
Das Feld 3 + 4 + 5 in gawk gibt Ihnen das zuletzt geänderte Datum der Zweigstelle an.
svn help log
Etwas komplexere und lautere Ausgabe mit einem einzigen Vorteil: ein lesbares Datum,
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 "|" Zum Ausschließen der Trennlinie mit <beliebigem Werkzeug> erhalten Sie den betroffenen Zweig aus den Dateinamen "Geänderte Pfade", Datum aus der ersten Zeichenfolge des Revisionsprotokolls.
Sie können immer "--xml" anstelle von "--verbose" verwenden. "-v". Ergibt maschinenlesbare Ausgaben im Gegensatz zu "menschenlesbarer Ausgabe", wie sie durch "--verbose" erzielt werden. Trennlinien usw. müssen nicht entfernt werden. Extrahieren Sie mit Xmlstarlet oder einem geeigneten XQuery-Skript (Saxon, ...), was Sie benötigen.
Wenn Sie @ Lazys Antwort und diese Antwort kombinieren, können Sie alles mit einem Befehl kombinieren:
svn ls `svn info | grep '^URL' | awk '{sub(/trunk.*$/, "branches", $NF); print}'` -v
(Abhängig von Ihrem svn-Repo-Layout, ändern Sie es gegebenenfalls.)
Ich habe einen anderen Weg gefunden, dies zu tun, aber Sie benötigen sventon oder ein anderes Tool, das alle Inhalte Ihres SVN-Repositorys auflistet.
Schritt 1: Kopieren Sie aus Ihrer Sventon-Ansicht die Liste der Zweige. Dazu gehören Revision, Autor und Datum.
Schritt 2: Öffnen Sie Excel und führen Sie ein Einfügen aus.
Schritt 3: Filtern Sie die Datumsspalte, um Datumsangaben anzuzeigen, die nicht älter als x Jahre sind.
Ergebnis: Alle Niederlassungen, die weniger als x Jahre alt sind. Diese Liste war für mich hilfreich, um einen svn delete --targets listofoldbranchnames.txt
zu erstellen.