В основном я хочу получить количество строк кода в репозитории после каждой фиксации.
Единственные (действительно дрянные) способы, которые я нашел, это использовать git filter-branch
для запуска wc -l *
и script, который запускает git reset --hard
для каждой фиксации, затем запускает wc -l
Чтобы сделать его более понятным, когда инструмент запущен, он выводит строки кода самого первого коммита, затем второго и т.д. Это то, что я хочу, чтобы инструмент выводил (в качестве примера):
[email protected]:~/$ 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