it-swarm.com.de

Wie liste ich alle Dateien in einem entfernten SVN-Repository auf?

Ich greife auf ein large Remote-SVN-Repository zu. Da ich normalerweise nur einen kleinen Teil des Inhalts benötige, habe ich eine "spärliche Kasse" durchgeführt:

svn checkout --depth empty svn+ssh://... src

Wenn ich einen Ordner aus dem Repository brauche, kann ich das einfach tun

svn up folder

und wenn ich es nicht mehr brauche, benutze ich es

svn up --set-depth exclude folder

Aber jetzt brauche ich eine vollständige Liste der all -Dateien im Repository, und ich möchte keine vollständige Überprüfung durchführen, um nur die Datei- und Ordnernamen zu erhalten.

Ich habe bereits svn ls -R ausprobiert, der einige Dateien auflistet, die ich nicht ausgecheckt habe, aber es fehlen noch einige. Ich weiß, weil es alles im aktuellen Verzeichnis anzeigt. Jetzt könnte ich svn ls und svn up --depth empty für jedes neu gefundene Verzeichnis semi-manuell ausführen, aber ich frage mich, ob es eine bessere Alternative gibt.

Im Gegensatz zu Wie liste ich alle Dateien auf, die jemals für das Repository festgelegt wurden? Ich interessiere mich nur für den aktuellen Inhalt des Repository und habe keinen Zugriff auf svnadmin. Ich kann auch keine Software auf dem Repository-Server installieren.

28
Koma

Dies listet alle Dateien rekursiv auf:

svn ls -R URL-OF-REPO
50
Lazy Badger
svn list --recursive https://myrespository.my.com/Myproject

Ich denke, das funktioniert für aktuelle und alle Unterverzeichnisse, wie ich es versucht habe. Hier werden auch alle Zweige und Tags sowie alle ihre Unterverzeichnisse und Dateien aufgelistet.

8
Gjordis

Sie können mein Dienstprogramm fast-svn-crawler ausprobieren, es ist viel schneller als "svn list --recursive".

$ svn-crawler https://myrespository.my.com/Myproject
6
Dmitry Pavlenko

Ohne URL

svn list --recursive -r HEAD

1
sanrodari

Wenn Sie eine vollständige Liste aller Dateien und nicht der Ordner erhalten möchten, können Sie den Befehl svn list und grep folgendermaßen senden:

svn list -R svn://url/to/your/main/folder/on/repo | grep '[^\/]$'

der Pfad zu den Ordnern, die von aufgelistet sind 

svn list -R svn: // url/in/dein/main/ordner/on/repo

endet immer mit "/", Dateipfad nicht. Die Ausgabe wird als Eingabe an übergeben 

grep '[^\/] $'

was schließt alle Pfade mit einem abschließenden "/" aus; Die übrigen Pfade beziehen sich nur auf Dateien.

Beispiel: Nehmen wir an, wir haben ein Repository mit dem Namen myrepo on my.svnserver.com als Domäne, und wir möchten, dass alle Dateien in einem Unterverzeichnis von myrepo ie mysubdir aufgelistet werden : Der Befehl lautet

svn list -R svn://my.svnserver.com/myrepo/mysubdir | grep '[^\/]$'

Wenn Sie das Ergebnis an den Befehl wc -l weiterleiten (der die Anzahl der Zeilenumbrüche druckt, da jede Ausgabezeile nur einen Pfad enthält), können Sie die Anzahl aller Dateien unter mysubdir abrufen. so was

svn list -R svn://my.svnserver.com/myrepo/mysubdir | grep '[^\/]$' | wc -l
0
m3t4l