基本上我想在每次提交后获取存储库中的代码行数。
我发现的唯一(真的很糟糕)方法是使用git filter-branch
to run ,以及在每次提交时wc -l *
运行的脚本,然后运行git reset --hard
wc -l
为了更清楚一点,当工具运行时,它会输出第一次提交的代码行,然后是第二次,依此类推。这就是我希望工具输出的内容(例如):
me@something:~/$ gitsloc --branch master
10
48
153
450
1734
1542
我玩过 ruby 'git' 库,但我发现最接近的是.lines()
在 diff 上使用该方法,这似乎应该给出添加的行(但没有:例如,当你删除行时它返回 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