in lib/grit/git-ruby/git_object.rb [241:264]
def self.from_raw(rawobject, repository=nil)
parent = []
tree = author = committer = nil
headers, message = rawobject.content.split(/\n\n/, 2)
all_headers = headers.split(/\n/).map { |header| header.split(/ /, 2) }
all_headers.each do |key, value|
case key
when "tree"
tree = value
when "parent"
parent.push(value)
when "author"
author = UserInfo.new(value)
when "committer"
committer = UserInfo.new(value)
end
end
if not tree && author && committer
raise RuntimeError, "incomplete raw commit object"
end
new(tree, parent, author, committer, message, headers, repository)
end