Используйте 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
Тогда у вас будет две очень красивые таблицы, показывающие вам много информации, как видно здесь