in lib/grit/commit.rb [138:184]
def self.list_from_string(repo, text)
text_gpgless = text.gsub(/gpgsig -----BEGIN PGP SIGNATURE-----[\n\r](.*[\n\r])*? -----END PGP SIGNATURE-----[\n\r]/, "")
lines = text_gpgless.split("\n")
commits = []
while !lines.empty?
while !lines.empty? && lines.first !~ /^commit [a-zA-Z0-9]*$/
lines.shift
end
id = lines.shift.split.last
tree = lines.shift.split.last
parents = []
parents << lines.shift.split.last while lines.first =~ /^parent/
author_line = lines.shift
author_line << lines.shift if lines[0] !~ /^committer /
author, authored_date = self.actor(author_line)
committer_line = lines.shift
committer_line << lines.shift if lines[0] && lines[0] != '' && lines[0] !~ /^encoding/
committer, committed_date = self.actor(committer_line)
encoding = lines.shift.split.last if lines.first =~ /^encoding/
lines.shift while lines.first =~ /^ /
lines.shift
message_lines = []
message_lines << lines.shift[4..-1] while lines.first =~ /^ {4}/
lines.shift while lines.first && lines.first.empty?
commits << Commit.new(repo, id, parents, tree, author, authored_date, committer, committed_date, message_lines)
end
commits
end