Adicionei um alias do git para me fornecer a contagem de linhas de arquivos específicos no meu histórico:
[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
No entanto, wc -l
está relatando vários totais, de modo que, se eu tiver mais de ~ 100k linhas, ele informará o total para elas e depois seguirá em frente. Aqui está um exemplo:
<100k linhas (saída desejada)
$ 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 linhas (teve que canalizar para grep "total"
)
$ git lines \*.cs | grep "total"
123569 total
107700 total
134796 total
111411 total
44600 total
Como obtenho um total verdadeiro wc -l
, e não uma série de subtotais?
wc
suporta a --files0-from
opção? Então você pode fazer{ git ls-files -z ${1} | wc -l --files0-from=- ; }
wc: unrecognized option '--files0-from=-'
xargs
, nãowc
. Ainda estou interessado em como corrigi-lo e não vejo uma boa solução nas respostas.