He agregado un alias git para darme el recuento de líneas de archivos específicos en mi historial:
[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
Sin embargo, wc -l
informa múltiples totales, de modo que si tengo más de ~ 100k líneas, informa el total para ellos, luego continúa. Aquí hay un ejemplo:
<100k líneas (salida deseada)
$ 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 líneas (tuvieron que canalizar grep "total"
)
$ git lines \*.cs | grep "total"
123569 total
107700 total
134796 total
111411 total
44600 total
¿Cómo obtengo un total verdadero wc -l
, no una serie de subtotales?
wc
admite la --files0-from
opción? Entonces puedes hacerlo{ git ls-files -z ${1} | wc -l --files0-from=- ; }
wc: unrecognized option '--files0-from=-'
xargs
, nowc
. Todavía estoy interesado en cómo solucionarlo, y no veo una buena solución en las respuestas.