mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-06-17 00:18:05 +02:00
switch to fork of go-git
This commit is contained in:
34
vendor/github.com/jesseduffield/go-git/v5/utils/merkletrie/doc.go
generated
vendored
Normal file
34
vendor/github.com/jesseduffield/go-git/v5/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
|
Reference in New Issue
Block a user