基本的に、各コミット後にリポジトリ内のコード行数を取得したいと考えています。
私が見つけた唯一の(本当にくだらない)方法は、実行するために使用git filter-branch
することであり、各コミットでwc -l *
実行され、次に実行されるスクリプトgit reset --hard
wc -l
もう少し明確にするために、ツールを実行すると、最初のコミットのコード行が出力され、次に 2 番目のコミット、というように出力されます。これは、ツールに出力してもらいたいものです(例として):
me@something:~/$ gitsloc --branch master
10
48
153
450
1734
1542
私はルビーの「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