Frage

Wie kann ich lasse SVN Liste alle Dateien, die jemals in einem Repository begangen wurden (wenn möglich, zusammen mit dem Standort und Revision).

Genauer gesagt:. Ich brauche alle jemals Pfade existiert

Wenn jemand weiß, wie eine Volltextsuche im gesamten Repository zu tun (einschließlich alle Versionen), dies würde mir noch besser helfen.

Beispiel

Lassen Sie uns sagen, dass ich eine Datei SomeFileOne.txt begehen, es später umbenennen, um SomeFileTwo.txt.

Nachdem die gewünschte Aufgabe durchführen (für die Lösung, die ich bin auf der Suche nach), sollte ich nicht nur SomeFileTwo.txt bekommen, sondern auch SomeFileOne.txt.

...
/trunk/SomeProject/SomeFileOne.txt - revision 100
/trunk/SomeProject/SomeFileTwo.txt - revision 101
...
War es hilfreich?

Lösung

Für mich svn log -v eine intuitive Methode gewesen wäre - oder haben Sie schon versucht das? Ist es möglich, die solche einen ausführlichen Bericht über die ganze Datei, um die Notwendigkeit zu teilen im Repository jemals gemacht Commits?

Andere Tipps

Gefunden um, indem er etwas aus.

Eine langsame und unsaubere Lösung könnte sein:

svnadmin dump MY_REPO | grep Node-path

Ausgabe wie folgt aussieht:

* Dumped revision 3039.
Node-path: trunk/proj1/src/p/keywords/main/NoOp.java
Node-path: trunk/proj1/src/p/keywords/main/ScopeDecl.java
* Dumped revision 3040.
Node-path: trunk/myCommons/src/i/IConverter.java
Node-path: trunk/myCommons/src/i/ListUtils.java
* Dumped revision 3041.
Node-path: trunk/proj1/src/p/execution/impl/IterativeExecuter.java
Node-path: trunk/proj1/src/p/keywords/DeclConstant.java

Nun, zumindest ist es löst mein Problem.

. HINWEIS: Dumped revision ... dargestellt, weil es stderr ist

Für eine verbesserte, strukturierte Ausgabe an svn log -v, verwenden Sie das folgende Bash-Skript:

$ svn log -v | egrep '^   A' | cut -c 6- | sort | uniq

Erklärt:

  • holen die ganze svn log für den angegebenen Pfad
  • nur Linien wählen beginnend mit ‚A‘, die SVN-Log-Ausgabe für eine zusätzliche Datei ist.
  • die ersten 5 Zeichen wegschneiden, die die Info erwähnt hinzufügen
  • Art der Ausgabe
  • Entfernen von doppelten Zeilen (z, wenn eine Datei später wieder hinzugefügt)

Dies ist auch für Teilstrecken der Kasse arbeitet, brauchen Sie gar nicht einmal eine Kasse, wenn Sie den Repository-Pfad bieten:

$ svn log -v https://github.com/schacon/kidgloves/ | egrep '^   A' | cut -c 6- | sort | uniq

Ergebnis:

/branches
/branches/testing (from /trunk:17)
/trunk
/trunk/README
/trunk/example.rb
/trunk/kidgloves.rb
/trunk/simple_rack.rb

Recht, die Dateiliste kann nicht für die automatisierte Verarbeitung noch perfekt sein, aber es geht einem langen Weg von nur die Log-Ausgabe, wenn ich so sagen darf. Genießen Sie.

Wenn Sie nur um Sie zu sehen bekommen könnte, was Sie mit einem der SVN-Web-Access-Tool wollen. Eine Razzia war geschrieben hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top