Wie kann ich ausschließen, bestimmte Dateien aus einem svn diff?
Ich bin mit svn diff -c 789
zeigen die änderungen in revision 789 unserer software, aber es zeigt eine Menge von Dateien, die ich nicht kenne, insbesondere test-Dateien. Wie kann ich ausschließen, bestimmte Dateien aus dem diff, zum Beispiel alle Dateien, die dem Muster entsprechen *Test.java
?
Bin ich mit Cygwin auf Windows, wenn das auch wichtig ist.
- Es ist nicht möglich, schließen Sie alle Dateien aus
svn diff
. Was Sie tun können, ist ein tool, das es ermöglicht, auf filter (oder auch ausschließen) die änderungen aus den Dateien, die Sie nicht interessieren, oder schreiben Sie ein Skript, analysieren die Ausgabe vonsvn diff
entfernen der änderungen aus den Dateien, die Sie ausschließen möchten. Wenn Sie interessiert sind, in einem solchen Skript bitte geben Sie mehr details zu Ihrer Umwelt - Betriebssystem und shell. - Ich bin mit Cygwin auf Windows 7.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als
svn diff
nicht ausschließen, bestimmte Dateien von der Ausgabe, unten ist ein BASH-Skript, dass verwendet werden kann, um das zu erreichen.Er nimmt zwei Argumente:
file
mit einemsvn diff
Ausgabepattern
Dateien ausgeschlossen werden (z.B.test/*
)und druckt den Inhalt der
file
ohne die änderungen aus den Dateien passendepattern
.Update
Ich kam gerade über ein tool, das diesen job: filterdiff. Es Verwendung ist sehr ähnlich zu dem obigen Skript:
filterdiff svn_diff_file -x exclude_pattern
svn diff
auf die gewünschten Dateien, anstatt filter diff alles. Siehe Victor ' s Antwort unten, wenn Sie haben solche Probleme.Durch die Art und Weise, denken Sie daran, dass der svn diff-Befehle arbeiten wie die anderen Befehle, die nach dem in der Unix-modulare Philosophie, wo jeder Befehl hat eine standard-Eingabe und Ausgabe.
Sie können genare Ihre eigenen anpassen-Skript für die Auflistung von Dateien, die Sie einbeziehen möchten, leiten Sie die Ausgabe des Skripts an den svn diff-Kommandos über die Verwendung von Rohren und leiten Sie Ihre Ausgabe von diff, um die gewünschte Datei, die Sie erstellen möchten.
Nur, um deutlicher zu sein : Folgen Sie diesem Beispiel
in
change_list.txt
das sind die Dateien, die Sie einbeziehen möchten, in der diff durch ein Leerzeichen getrennt. Zum Beispiel der Inhalt der Datei könnte so sein :Also nach diesem Ansatz, der nur schwierig von Ihrem problem reduziert sich auf einen script realisieren, dass wir wie Adam großzügig oben schrieb.
Hoffe, es hilft!
Vic.
find
Dateien zu spezifizieren, die in das diff:svn diff $(find . -type f -name '*.js')
Dies ist, was ich getan habe: