in jekyll/plugins/recently_updated_generator.rb [166:208]
def commits
commits = []
lines = %x{ git log -n50 --no-merges --name-status --pretty=format:%H%n%an%n%aD%n%s%n%b%n%n }
lines = lines.lines
while lines.length > 0 do
commit = {
:hash => lines.shift.strip,
:author => lines.shift.strip,
:date => DateTime.parse(lines.shift.strip),
:subject => lines.shift.strip
}
body = [ lines.shift.strip ]
line = ''
begin
prev_line = line
line = lines.shift
body << line.strip
end until (line == "\n" and prev_line == "\n") or lines.length <= 0
commit[:body] = body[0..-3]
while lines[0] == "\n"
lines.shift
end
files = []
line = ''
begin
line = lines.shift
if match = line.match(/(^\w)(\d*)\t([^\s]*)(?:\s+(.*))?/)
type, similarity, file1, file2 = match.captures
files << { :type => type, :similarity => similarity, :file => file1, :newfile => file2 }
end
end until line == "\n" or lines.length <= 0
commit[:files] = files
commits << commit
end
commits
end