Gibt es eine gute Software, mit der ich mein SVN-Repository nach Codeausschnitten durchsuchen kann? Ich habe 'FishEye' gefunden, aber die Kosten betragen 1.200 und liegen weit außerhalb meines Budgets.
Wenn Sie nur nach dem Dateinamen suchen, verwenden Sie:
svn list -R file:///Subversion/repository | grep filename
Windows:
svn list -R file:///Subversion/repository | findstr filename
Andernfalls checken Sie aus und führen Sie eine Dateisystemsuche durch:
egrep -r _code_ .
Es gibt sourceforge.net/projects/svn-search .
Es gibt auch eine Windows-Anwendung namens SvnQuery direkt von der SVN-Startseite aus, die unter http://svnquery.tigris.org verfügbar ist
Ab Subversion 1.8 können Sie --search
Option mit svn log
Befehl . Beachten Sie, dass der Befehl keine Volltextsuche in einem Repository ausführt, sondern nur die folgenden Daten berücksichtigt:
svn:author
nicht versionierte Eigenschaft),svn:date
nicht versionierte Eigenschaft),svn:log
nicht versionierte Eigenschaft),Hier ist die Hilfeseite zu diesen neuen Suchoptionen:
If the --search option is used, log messages are displayed only if the
provided search pattern matches any of the author, date, log message
text (unless --quiet is used), or, if the --verbose option is also
provided, a changed path.
The search pattern may include "glob syntax" wildcards:
? matches any single character
* matches a sequence of arbitrary characters
[abc] matches any of the characters listed inside the brackets
If multiple --search options are provided, a log message is shown if
it matches any of the provided search patterns. If the --search-and
option is used, that option's argument is combined with the pattern
from the previous --search or --search-and option, and a log message
is shown only if it matches the combined search pattern.
If --limit is used in combination with --search, --limit restricts the
number of log messages searched, rather than restricting the output
to a particular number of matching log messages.
Wir verwenden http://opensolaris.org/os/project/opengrok/
git-svn
Spiegel dieses Repositorys.git log -S'my line of code'
oder dasselbe in gitk
Der Vorteil ist, dass Sie viele Suchvorgänge lokal durchführen können, ohne den Server und die Netzwerkverbindung zu laden.
In diesem Beispiel wird der gesamte Inhalt des Repositorys an eine Datei weitergeleitet, in der Sie schnell nach Dateinamen in einem Editor suchen können:
svn list -R svn://svn > filelist.txt
Dies ist nützlich, wenn das Repository relativ statisch ist und Sie eine schnelle Suche durchführen möchten, ohne wiederholt alles vom SVN-Server laden zu müssen.
Ich mag TRAC - dieses Plugin könnte für Ihre Aufgabe hilfreich sein: http://trac-hacks.org/wiki/RepoSearchPlugin
Nur eine Anmerkung, FishEye (und viele andere Atlassian-Produkte) haben eine Starter-Edition im Wert von 10 USD FishEye bietet Ihnen 5 Repositories und Zugriff für bis zu 10 Committer. Das Geld geht in diesem Fall an wohltätige Zwecke.
Schmerzhaft langsam (und grob implementiert), aber eine Kombination aus svn log und svn cat funktioniert, wenn Sie den Verlauf einzelner Dateien oder kleiner Repositorys durchsuchen:
svn log filetosearch |
grep '^r' |
cut -f1 -d' ' |
xargs -i bash -c "echo '{}'; svn cat filetosearch -'{}'"
gibt jede Revisionsnummer aus, an der die Datei geändert wurde, sowie die Datei. Sie können jede Revision jederzeit in eine andere Datei verschieben und dann nach Änderungen suchen.
PS. Massive Upvotes an alle, die mir zeigen, wie man das richtig macht!
Wenn Sie wirklich verzweifelt sind, erstellen Sie einen Speicherauszug des Repos (siehe "svnadmin dump") und durchsuchen Sie ihn dann. Es ist nicht schön, aber Sie können sich in den Suchergebnissen umsehen, um die Metadaten zu finden, die die Datei und die Revision anzeigen, und sie dann für eine bessere Darstellung überprüfen.
Sicher keine gute Lösung, aber sie ist kostenlos :) SVN bietet keine Funktion zum Durchsuchen früherer Eincheckvorgänge (oder sogar früherer Protokolldateien, AFAIK).
Ich habe angefangen, dieses Tool zu verwenden
http://www.supose.org/wiki/supose
Es funktioniert gut, nur ohne eine visuelle Benutzeroberfläche, ist aber schnell und etwas gepflegt
Viele SVN-Repos sind "einfach" HTTP-Sites. Sie können sich also einige "Web-Crawling" -Suchanwendungen von der Stange ansehen, die Sie auf das SVN-Stammverzeichnis verweisen können und die Ihnen grundlegende Funktionen bieten. Das Aktualisieren wird wahrscheinlich ein Trick sein, vielleicht kann ein SVN-Check-in-Hackery den Index kitzeln, um Änderungen zu verwerfen oder neu zu indizieren, wenn Sie gehen.
Ich denke nur laut nach.
theres Krugle und Koders, aber beide sind teuer. Beide haben IDE-Plugins für Eclipse.
// Bearbeiten: Tool wurde bereits in einer anderen Antwort erwähnt, also gib Kuryaki alle Credits.
Just found SupoSE Dies ist ein Java) - basiertes Befehlszeilentool, das ein Repository durchsucht, um einen Index zu erstellen, und anschließend bestimmte Arten von Abfragen beantworten kann Das Tool wird evaluiert, sieht aber vielversprechend aus. Erwähnenswert ist, dass es einen vollständigen Index aller Revisionen einschließlich Quellcodedateien und gängiger Office-Formate erstellt.