gollum / rugged_adapter

Adapter to make gollum use Rugged (libgit2) at the backend.
MIT License
36 stars 27 forks source link

Get all directory entries at the given SHA #65

Open benjaminwil opened 6 months ago

benjaminwil commented 6 months ago

It looks like this gem has no test suite, so I've included the output from @repo.lstree_all_directories(sha) below as evidence that this works--until this can be tested at the gollum-lib and gollum layers.


This commit adds Gollum-formatted entries that represent the directory tree of the repository at the given SHA. For example, using the Gollum lotr.git test wiki, we get the following array back:

@repo.lstree_all_directories(sha)
=>
[{:sha=>"6e48abfc56565574859e081ee58eae655d48cf71",
  :mode=>16384,
  :type=>"tree",
  :name=>"Gondor",
  :path=>"Gondor"},
 {:sha=>"760982a3b84987919b99748d87c7890bb54afd07",
  :mode=>16384,
  :type=>"tree",
  :name=>"Mordor",
  :path=>"Mordor"},
 {:sha=>"a13e77aca82edd8e6bd4096e351627859f74ffec",
  :mode=>16384,
  :type=>"tree",
  :name=>"Rivendell",
  :path=>"Rivendell"}]

In subsequent commits to gollum and gollum-lib, using this method can help us make Gollum's "Overview" page more performant for large wikis.

Currently, Gollum has no mechanism for getting the directory tree of the git repository, meaning we have to reverse-engineer the directory tree by using the paths of files checked into the repository.

bartkamphorst commented 6 months ago

It looks like this gem has no test suite

The test suite for the adapters is in a separate repository so that all the adapters share the same tests.

dometto commented 6 months ago

Right, and the test suite gives at least some sort of documentation of the API, which is a bit lacking at the moment. :)