def recent_changes(parent_path=nil, max=100, offset=0)
    log = []
    # this is more gollum proper, but we can't set the path
    # commits = @gollum_wiki.latest_changes(max_count: max)
    ref = @gollum_wiki.ref # probably 'master'
    commits = @gollum_wiki.repo.log(ref, parent_path, {limit: max, offset: offset})
    commits.each do |c|
      c.stats.files.each do |f|
        path = f[0]
        if parent_path && ! path.starts_with?(parent_path)
          # we don't want this one
        elsif File.extname(path) == '.md'
          path.chomp!('.md')
          log << {path: path, commit: c}
        end
      end
    end
    # if we're out of commits, return nil rather than []
    return commits.empty? ? nil : log
  end
def recent_changes(parent_path=nil, max=100, offset=0)
    log = []
    # this is more gollum proper, but we can't set the path
    # commits = @gollum_wiki.latest_changes(max_count: max)
    ref = @gollum_wiki.ref # probably 'master'
    commits = @gollum_wiki.repo.log(ref, parent_path, {limit: max, offset: offset})
    commits.each do |c|
      c.stats.files.each do |f|
        path = f[0]
        if parent_path && ! path.starts_with?(parent_path)
          # we don't want this one
        elsif File.extname(path) == '.md'
          path.chomp!('.md')
          log << {path: path, commit: c}
        end
      end
    end
    # if we're out of commits, return nil rather than []
    return commits.empty? ? nil : log
  end
one entry for each commit/file