J'ai ajouté un alias git pour me donner le nombre de lignes de fichiers spécifiques dans mon historique:
[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
Cependant, wc -l
rapporte plusieurs totaux, de sorte que si j'ai plus de ~ 100 000 lignes, il rapporte le total pour eux, puis passe à autre chose. Voici un exemple:
<100k lignes (sortie souhaitée)
$ 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 lignes (devaient être acheminées vers grep "total"
)
$ git lines \*.cs | grep "total"
123569 total
107700 total
134796 total
111411 total
44600 total
Comment puis-je obtenir un vrai total wc -l
, pas une série de sous-totaux?
wc
charge l' --files0-from
option? Ensuite, vous pouvez le faire{ git ls-files -z ${1} | wc -l --files0-from=- ; }
wc: unrecognized option '--files0-from=-'
xargs
, nonwc
. Je suis toujours intéressé par la façon de le réparer, et je ne vois pas de bonne solution dans les réponses.