web-dev-qa-db-de.com

So zeigen Sie die Liste der Repositorys vom Subversion-Server an

Ich suche nach einer Möglichkeit, einen ganzen Subversion-Server zu durchsuchen.

Ich habe bereits ein Teil des Puzzles zu Suche in einem Repository . Jetzt muss ich dies für jedes Repository tun.

Aktualisieren:

Ich muss über ein Unix-Shell-Skript (Perl, Bash usw.) auf diese Liste zugreifen.

41
lamcro

Ich habe auch versucht, Repositorys in SVN aufzulisten. Ich habe so etwas bei Shell Prompt gemacht:

~$ svn list https://www.repo.rr.com/svn/main/team/gaurav

Test/
Test2/
Test3/
Test4/
Test5/
Test6/
40
gkgarg24

Wenn Sie svn über Apache und eine SVNParentPath -Direktive aktivieren, können Sie Ihrem svn-Speicherort eine SVNListParentPath On -Direktive hinzufügen, um eine Liste aller Repositorys abzurufen.

Deine Apache conf sollte ungefähr so ​​aussehen:

<Location /svn>
  DAV svn
  SVNParentPath         "/net/svn/repositories"
  # optional auth stuff     

  SVNListParentPath On    #  <--- Add this line to enable listing of all repos
</Location>
24
Peter Parker

Funktioniert Ihr Zugriff auf SVN nicht wie ein Webdienst? Wenn ich auf das oberste Verzeichnis meines SVN-Servers zugreife, erhalte ich eine Seite, die im Wesentlichen ein Inhaltsverzeichnis des gesamten Werks ist. Es ist eine ungeordnete Liste, die ich einfach durchsuchen kann.

EDIT: So würde ich das von der Kommandozeile aus machen:

wget http://user:[email protected]/ -O - | grep \<li\>
2
Carl Smotricz

In meiner Firma wurde der Server nicht so konfiguriert, dass er eine Liste von Repositorys bereitstellt. Daher arbeitete svn list Für ein bestimmtes Repository, jedoch nicht auf einer höheren Ebene, um alle Repositorys aufzulisten.

Sie haben jedoch FishEye installiert, wodurch Sie eine GUI mit den Repositorys erhalten https://www.atlassian.com/software/fisheye

Es ist eine kostenpflichtige Option, also nicht für jedermann, aber die Funktionalität ist gut.

1
Alex

Manchmal möchten Sie vielleicht den Zeitstempel überprüfen, um festzustellen, wann das Repo aktualisiert wurde. Um diese nützlichen Informationen zu erhalten, können Sie die Option svn -v (verbose) wie in verwenden

svn list -v svn://123.123.123.123/svn/repo/path
0
Madhav Sbss

Wenn Sie sich in Java auskennen, können Sie SvnKit zum Durchsuchen und Suchen verwenden, und Gott weiß, was mit Ihrem Subversion-Server passiert.

Danach können Sie Ihr Programm packen und entweder über eine Ant-Task oder ein Shell-Skript aufrufen.

Es ist eine ziemliche "Brute Force" -Lösung, aber wenn Sie SvnKit beherrschen, können Sie wirklich viele coole Dinge tun.

0
Vladimir

Wenn Ihr Server Apache ist, sollten Sie in der Lage sein, ihn so zu konfigurieren, dass die Repository-Liste mit viewvc angezeigt wird. Dies ist die grundlegendste, andere komplexere Schnittstellen sind vorhanden, aber dies ist hier nicht Ihr Zweck.

In einigen Versionen ist ViewVC jetzt eine Option der Standardinstallation, beispielsweise von Collabnet.

Bearbeiten : Vergiss meine vorherige Idee, Peter hat eine viel einfachere Möglichkeit, die Repository-Liste zu senden.

Von dort aus müssen Sie:

  • holen Sie sich die HTML-Seite,
  • extrahieren Sie die Liste und
  • verarbeiten Sie es für die einzelne Repository-Suche.

Leider kann ich mir in diesem Fall nichts Einfacheres vorstellen.

Es gibt Beispiele für SO wie man Text aus HTML-Seiten in Python extrahiert, dies wäre eine gute Option, da Python auch hat Bindungen für SVN, um die Repository-Suche durchzuführen - Sie können svn immer noch direkt aus Python) aufrufen, wenn Sie es vorziehen.

Wenn Python nicht Ihre Tasse Tee ist, müssen Sie das anders mit GNU tools (wget, dann Parsing-Tools oder vorhandene Pakete - ich kann ' Ich kann dir da nicht weiterhelfen, Carl gab dir in diesem Beitrag einige Details).

0
RedGlyph