Ich habe einen Git-Alias hinzugefügt, um die Zeilenanzahl bestimmter Dateien in meinem Verlauf zu ermitteln:
[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
Es werden jedoch wc -l
mehrere Summen gemeldet, sodass, wenn ich mehr als ~ 100.000 Zeilen habe, die Gesamtsumme für diese gemeldet wird und dann fortgefahren wird. Hier ist ein Beispiel:
<100k Zeilen (gewünschte Ausgabe)
$ git lines \*.xslt
46 packages/NUnit-2.5.10.11092/doc/files/Summary.xslt
232 packages/NUnit-2.5.10.11092/samples/csharp/_UpgradeReport_Files/UpgradeReport.xslt
278 total
> 100k Leitungen (mussten umleiten grep "total"
)
$ git lines \*.cs | grep "total"
123569 total
107700 total
134796 total
111411 total
44600 total
Wie erhalte ich eine echte Summe wc -l
, nicht eine Reihe von Zwischensummen?
wc
Unterstützt Ihre Version die --files0-from
Option? Dann können Sie{ git ls-files -z ${1} | wc -l --files0-from=- ; }
wc: unrecognized option '--files0-from=-'
xargs
, nichtwc
. Ich bin immer noch daran interessiert, wie das Problem behoben werden kann, und ich sehe in den Antworten keine gute Lösung.