Используйте cloc на 2 разных коммитах. Видеть только фактические строки кода, без комментариев или пустых строк

Я уже знаю, как получить разницу между 2 коммитами, а также получить их файл за файлом. Я также знаю (благодаря этому потоку считать количество строк в репозитории git), что вы можете использовать Cloc, чтобы получать только реальные строки кода вместо всех строк.

Но как мне сделать, чтобы получить разницу в строках кода только в git, я:E использую cloc на 2 разных коммитах?

Это дает мне распечатку кода с тем, что добавлено (+) и что удалено (-). Но здесь я не могу использовать cloc напрямую, мне пришлось бы немного разобрать

git diff `git rev-list --since="jun 30 2014" --reverse origin/master | head -1`..`git rev-list --until="dec 31 2014" origin/master | head -1`

Здесь я получаю все файлы модифицированные и добавленные / измененные строки первого столбца. Проблема в том, что это включает в себя пустые строки и комментарии.

git diff `git rev-list --since="jun 30 2014" --reverse origin/master | head -1`..`git rev-list --until="dec 31 2014" origin/master | head -1` --numstat

Есть ли способ сделать выше, не получая пустых строк или комментариев? Я:E, используя Cloc вместо собственного алгоритма сравнения Gits? И если так, как я могу это сделать?

Заранее спасибо.

1 ответ

Если я вас правильно понимаю, самый простой способ достичь желаемого - это выполнить следующие шаги:

git checkout <commit-1>
cloc ./ > ../commit-1-cloc.txt

git checkokut <commit-2>
cloc ./ > ../commit-2-cloc.txt

Тогда у вас будет две очень красивые таблицы, показывающие вам много информации, как видно здесь

Другие вопросы по тегам