def build_commits(raw_commits)
      child_commit_id = nil
      raw_commits.map do |commit|
        commit = self.class::Commit.new(self, commit)
        commit.add_child child_commit_id unless child_commit_id.nil?
        child_commit_id = commit.id
        @commits[commit.id] = commit
        commit
      end
    end
def build_commits(raw_commits)
      child_commit_id = nil
      raw_commits.map do |commit|
        commit = self.class::Commit.new(self, commit)
        commit.add_child child_commit_id unless child_commit_id.nil?
        child_commit_id = commit.id
        @commits[commit.id] = commit
        commit
      end
    end
Builds VCS specific commit objects for each given commit's raw data that
 is provided by the VCS implementation

 The raw data will be transformed into commit objects that will also be
 saved into the commit cache. Authors and committers of the given commits
 will be created and stored into the cache or loaded from the cache if
 they already exist. Additionally this method will establish an
 association between the commits and their children.

 @param [Array<Object>] raw_commits The commits' raw data provided by the
        VCS implementation
 @return [Array<Commit>] The commit objects representing the given commits
 @see Commit
 @see Commit#add_child