Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get all directory entries at the given SHA #65

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

benjaminwil
Copy link
Member

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.

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
Copy link
Member

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
Copy link
Member

dometto commented May 6, 2024

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

@@ -659,6 +659,12 @@ def lstree(sha, options = {})
results
end

def lstree_all_directories(sha)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe lstree_all_trees to stay consistent with git terminology?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense. I will change this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants