基本上,我想获取每次提交后存储库中代码行数的数量。
我所发现的唯一(真的很糟糕)方法是使用git filter-branch
来运行wc -l *
,以及一个脚本,在每次提交时运行git reset --hard
,然后运行wc -l
为了使其更清晰,当运行该工具时,它将输出第一个提交的代码行数,然后是第二个提交的代码行数,以此类推。这就是我希望该工具输出的内容(以示例形式呈现):
me@something:~/$ gitsloc --branch master
10
48
153
450
1734
1542
我曾经尝试使用Ruby的'git'库,但是最接近的方法是在差异上使用.lines()
方法,它似乎应该给出新增的行(但事实并非如此:例如当你删除行时,它会返回0)
require 'rubygems'
require 'git'
total = 0
g = Git.open(working_dir = '/Users/dbr/Desktop/code_projects/tvdb_api')
last = nil
g.log.each do |cur|
diff = g.diff(last, cur)
total = total + diff.lines
puts total
last = cur
end