我想跟踪排除移动行的添加和删除的数量。因此,如果一次提交有 10 个添加、5 个删除和 3 个移动行,那么我有 7 个添加、2 个删除(不包括移动行)。10 和 5 由以下代码给出。我需要生成 3 (我只需要弱移动行检测,例如,在同一提交中同时从一个位置删除并添加到另一个位置的任何行)。
我正在使用以下命令来跟踪 git 存储库中重要文件的添加和删除次数。
git log --since=2014-08-01 --date=short --pretty=format:"%ad%x09" --numstat -- file.tex
Run Code Online (Sandbox Code Playgroud)
这会产生以下结果,其中第一个数字是添加,第二个数字是删除。
2014-08-19
72 0 file.tex
2014-08-19
211 290 file.tex
...
Run Code Online (Sandbox Code Playgroud)
我想添加第三列,称之为移动行。可以通过在每次提交的循环中执行以下操作来找到每次提交移动的行:
sort
uniq -d
wc -l
有没有一种快速而优雅的方法来运行这个伪代码,或者我只需要转储和解析一堆完整的 git diff 来获得我需要的东西?