Subversion – Volltextsuche auf das Repository

Veröffentlicht von

Subversion bietet leider von Haus aus keine Möglichkeit eine Volltextsuche über das gesamte Repository auszuführen.

Dies geht nur über das Log an sich. Dies führt zumindest vor Augen, dass hier stets sinnvolle Kommentare zu vergeben sind. Aber eine Suche über alle Quelltextdateien in den Revisionen ist mit Boardmitteln nicht drinnen. Es gibt zwar ein Tool namens SvnQuery, aber dieses brach bei mir bei der Indexerstellung stets mit einer Exception ab. GIT die Möglichkeit das gesamte Repo zu suchen und mit GIT-SVN kann man auch SVN-Archive mit GIT verwalten. Dies führt uns zum Ziel.

Zuerst gilt es das Repository abzurufen:

git svn clone https://server/svn/Project/trunk --username da

Die Angabe des Benutzernames ist optional, falls der lokale Benutzername dem des Servers entspricht. Falls eine Fehlermeldung kommt, dass der Befehl nicht erkannt wird, muss man zuerst GIT-SVN installieren.

$ git svn
git: 'svn' is not a command

Dies geht einfach mit “sudo apt-get install git-svn”. Anschließend sollte das Repository lokal geclont werden. Hier fällt der fundamentale Unterschied zu Subversion auf: GIT ruft alle Revisionen an und speichert diese lokal. Dies hilft uns dann auch bei der Volltextsuche.

Einen String können wir z.B. wie folgt suchen:

git log -S"suchstring" -u

Das “-u” bewirkt, dass wir die Codezeilen gleich anschauen können. Gesucht wird in den einzelnen Commits, welche dann auch nacheinander angezeigt werden. Damit lassen sich Änderungen nachverfolgen, welche im aktuellen Quelltext gar nicht mehr drinnen ist. Z.B. um zu schauen, wann eine bestimmte Codezeile rausgeflogen ist.

Quelle

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.