forked from kevadesu/forgejo
Implement git refs API for listing references (branches, tags and other) (#5354)
* Inital routes to git refs api * Git refs API implementation * Update swagger * Fix copyright * Make swagger happy add basic test * Fix test * Fix test again :)
This commit is contained in:
parent
294904321c
commit
08bf443016
268 changed files with 48603 additions and 10 deletions
34
vendor/gopkg.in/src-d/go-git.v4/utils/merkletrie/doc.go
generated
vendored
Normal file
34
vendor/gopkg.in/src-d/go-git.v4/utils/merkletrie/doc.go
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
Package merkletrie provides support for n-ary trees that are at the same
|
||||
time Merkle trees and Radix trees (tries).
|
||||
|
||||
Git trees are Radix n-ary trees in virtue of the names of their
|
||||
tree entries. At the same time, git trees are Merkle trees thanks to
|
||||
their hashes.
|
||||
|
||||
This package defines Merkle tries as nodes that should have:
|
||||
|
||||
- a hash: the Merkle part of the Merkle trie
|
||||
|
||||
- a key: the Radix part of the Merkle trie
|
||||
|
||||
The Merkle hash condition is not enforced by this package though. This
|
||||
means that the hash of a node doesn't have to take into account the hashes of
|
||||
their children, which is good for testing purposes.
|
||||
|
||||
Nodes in the Merkle trie are abstracted by the Noder interface. The
|
||||
intended use is that git trees implements this interface, either
|
||||
directly or using a simple wrapper.
|
||||
|
||||
This package provides an iterator for merkletries that can skip whole
|
||||
directory-like noders and an efficient merkletrie comparison algorithm.
|
||||
|
||||
When comparing git trees, the simple approach of alphabetically sorting
|
||||
their elements and comparing the resulting lists is too slow as it
|
||||
depends linearly on the number of files in the trees: When a directory
|
||||
has lots of files but none of them has been modified, this approach is
|
||||
very expensive. We can do better by prunning whole directories that
|
||||
have not change, just by looking at their hashes. This package provides
|
||||
the tools to do exactly that.
|
||||
*/
|
||||
package merkletrie
|
Loading…
Add table
Add a link
Reference in a new issue