2008-12-24 6 views
23

Wie kann ich suchen, ob eine Datei mit dem Namen foo.txt jemals in meinem SVN-Repository (in jeder Revision) begangen wurde?Wie kann ich ein SVN-Repository für die Existenz von Dateien in jeder Revision suchen

+0

Ich denke, die kurze Antwort ist „das Protokoll suchen“. Wie Sie das erreichen, hängt davon ab, wie Sie mit SVN interagieren, daher Martijns und meine unterschiedlichen Antworten. –

+0

Nun gut, Adam :) Ich antwortete zuerst mit einer codierten Antwort, aber dann bemerkte ich das ziemlich explizite TortoiseSVN-Tag. –

+1

Richtig, das habe ich verpasst. Trotzdem werde ich meine Antwort hinterlassen, jemand könnte daran interessiert sein. –

Antwort

30

Rechtsklick auf den Root-Ordner ausgecheckt> TortoiseSVN> Protokoll anzeigen

Sie können genauso gut dort Dateinamen eingeben.

+0

Datum kann nicht eingestellt werden (von - bis). – Kate

+0

Ja, klicke und entdecke Imageshack. Ich hab es geschafft. – bahrep

+0

Datum kann nicht eingestellt werden, aber Sie können auf "Weiter 100" klicken, um weitere Ergebnisse anzuzeigen. – Efreeto

10

Dies sollte für Sie arbeiten:

svn log -r 0:HEAD -v $REPOSITORY_PATH | grep "/foo.txt" 

Dies Sie die Pfade zu den Dateien geben und den Zustand aus dem Protokoll. Wenn Sie irgendwelche Treffer bekommen, wissen Sie, dass es irgendwann existiert hat. Wenn Sie keine Ergebnisse erhalten, gibt es bei keiner Revision irgendwo im Repository eine Übereinstimmung. Sie werden auch die Zustände von jeder Protokollzeile sehen, z.B .:

 
    A /some/path/foo.txt 
    D /some/path/foo.txt 

Aber ich vermute, die zusätzliche Informationen für Sie kein Problem. :)

+0

Das würde funktionieren. Sie könnten nach dem ersten Vorkommen mit 'svn ... | filtern grep /foo.txt | Kopf -1 ' – orip

+1

Danke, könnten Sie bitte helfen, revisions Zahlen mit diesen Protokollen zu bekommen? – linuxeasy

+0

Wenn Sie REPOSITORY_PATH sagen, meinen Sie den Pfad auf dem Dateisystem oder die URL des Standorts im Repository? –

4

Verwenden Sie Subversion 1.8+ Client und new --search and --search-and options become available for svn log command. Diese Optionen lassen keine Volltextsuche in einem Repository durchführen und sucht folgende Daten nur:

  • Revision des Autors (svn:author Revisions-Eigenschaft),
  • Datum (svn:date Revisions-Eigenschaft),
  • Lognachricht Text (svn:log unversionierte Eigenschaft),
  • Liste der geänderten Pfade (dh Pfade, die von der jeweiligen Revision betroffen sind).

Soweit ich denke, Sie für "foo.txt" mit der folgenden Befehlszeile suchen:

svn log -v --search "foo.txt".

Dies ist die komplette Hilfeseite über diese neuen svn log 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. 
Verwandte Themen