it-swarm.com.de

Holen Sie sich alle Filialnamen in SVN

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.

52
user1164061
  • 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.

82
Lazy Badger

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.

3
Jochen Hayek

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

2
Jens

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.

0
user1164061