def log_messages(first_parent = false, range = nil, branch = nil, from_ancestor_with = nil)
      walker = Rugged::Walker.new @repo
      if !range.nil?
        begin
          walker.push_range range
        rescue Rugged::ReferenceError
          raise Valr::NotValidRangeError.new range
        end
      elsif !branch.nil?
        b = @repo.references["refs/heads/#{branch}"]
        raise Valr::NotValidBranchError.new branch if b.nil?
        if !from_ancestor_with.nil?
          a = @repo.references["refs/heads/#{from_ancestor_with}"]
          raise Valr::NotValidBranchError.new from_ancestor_with if a.nil?
          base = @repo.merge_base b.target_id, a.target_id
          walker.push_range "#{base}..#{b.target_id}"
        else
          walker.push b.target_id
        end
      else
        walker.push @repo.head.target_id
      end
      walker.simplify_first_parent if first_parent
      message_list = walker.inject([]) { |messages, c| messages << c.message }
      walker.reset
      message_list
    end
def log_messages(first_parent = false, range = nil, branch = nil, from_ancestor_with = nil)
      walker = Rugged::Walker.new @repo
      if !range.nil?
        begin
          walker.push_range range
        rescue Rugged::ReferenceError
          raise Valr::NotValidRangeError.new range
        end
      elsif !branch.nil?
        b = @repo.references["refs/heads/#{branch}"]
        raise Valr::NotValidBranchError.new branch if b.nil?
        if !from_ancestor_with.nil?
          a = @repo.references["refs/heads/#{from_ancestor_with}"]
          raise Valr::NotValidBranchError.new from_ancestor_with if a.nil?
          base = @repo.merge_base b.target_id, a.target_id
          walker.push_range "#{base}..#{b.target_id}"
        else
          walker.push b.target_id
        end
      else
        walker.push @repo.head.target_id
      end
      walker.simplify_first_parent if first_parent
      message_list = walker.inject([]) { |messages, c| messages << c.message }
      walker.reset
      message_list
    end
Get log messages for a repository
 @param [Boolean] first_parent Optional, if true limit to first parent commits
 @param [String] range Optional, define a specific range of commits
 @param [String] branch Optional, show commits in a branch
 @param [String] from_ancestor_with Optional, from common ancestor with this branch
 @return [Array<String>] log messages