def process_commit_data(data, sha = nil)
in_message = false
if sha
hsh = {'sha' => sha, 'message' => '', 'parent' => []}
else
hsh_array = []
end
data.each do |line|
line = line.chomp
if in_message && line != ''
hsh['message'] += line + "\n"
end
if (line != '') && !in_message
data = line.split
key = data.shift
value = data.join(' ')
if key == 'commit'
sha = value
hsh_array << hsh if hsh
hsh = {'sha' => sha, 'message' => '', 'parent' => []}
end
if key == 'parent'
hsh[key] << value
else
hsh[key] = value
end
elsif in_message && line == ''
in_message = false
else
in_message = true
end
end
if hsh_array
hsh_array << hsh if hsh
hsh_array
else
hsh
end
end