Wie Anzahl der Zeilen zwischen CVS-Versionen geändert zu finden?
Frage
Ich habe fast den ganzen Tag verbracht zu machen, was im Grunde einige Housekeeping Änderungen an der Code-Basis von einem unserer Projekte (alle System.out.println()
ersetzt Anrufe mit log4j).
Ich bin ein bisschen neugierig, wie viele Zeilen von Code, den ich mit diesem Satz von Änderungen aktualisiert habe.
Gibt es trotzdem mit cvs diff
oder einem anderen Befehl, eine genaue Zahl zu bekommen, wie viele Zeilen geändert hat?
Ich habe versucht,
cvs diff -b -B -R
alle Änderungen im Arbeitsverzeichnis zu bekommen (und Unterverzeichnisse rekursiv), aber für jede Datei geändert es auch Datei / Versionsinformationen ausdruckt, das Zählen macht nur die Zeilen der Ausgabe unbrauchbar.
Irgendwelche Ideen?
Lösung
filtern zusätzliche Zeilen aus dem diff-Ausgang und dann die Zeilen zählen.
Zum Beispiel grep nur Linien, beginnend mit
cvs diff -b -B -R | egrep '^<|>' | wc -l
Andere Tipps
Die diffstat Dienstprogramm ist ein nettes Tool einige einfache Metriken aus der Ausgabe von cvs für immer, svn oder andere diffs.
Sie können einfach Rohr Ausgabe von cvs diff diffstat.
Was ist sicher, dass Sie alle Instanzen mit so etwas wie geändert haben:
find . | egrep -v -e '(CVS|<other patterns you don't want>)' | \
xargs egrep -e 'System\.out\.println[(][)]' | wc -l
das sollten Sie Null.
Dann die Regex in der zweiten egrep mit ‚log4j‘ ersetzt haben sollte wc -l die Anzahl der Zeilen der Rückkehr Sie geändert haben.
HTH.
prost,
Rob