module RDoc::Parser::ChangeLog::Git

def parse_entries

def parse_entries
  entries = []
  @content.scan(/^commit\s+(\h{20})\h*\n((?:.+\n)*)\n((?: {4}.*\n+)*)/) do
    entry_name, header, entry_body = $1, $2, $3.gsub(/^ {4}/, '')
    # header = header.scan(/^ *(\S+?): +(.*)/).to_h
    # date = header["CommitDate"] || header["Date"]
    date = header[/^ *(?:Author)?Date: +(.*)/, 1]
    author = header[/^ *Author: +(.*)/, 1]
    begin
      time = parse_date(header[/^ *CommitDate: +(.*)/, 1] || date)
      @time_cache[entry_name] = time
      author.sub!(/\s*<(.*)>/, '')
      email = $1
      entries << [entry_name, [author, email, date, entry_body]]
    rescue ArgumentError
    end
  end
  entries
end