Improve listing performance by using go-git (#6478)
* Use go-git for tree reading and commit info lookup. Signed-off-by: Filip Navara <navara@emclient.com> * Use TreeEntry.IsRegular() instead of ObjectType that was removed. Signed-off-by: Filip Navara <navara@emclient.com> * Use the treePath to optimize commit info search. Signed-off-by: Filip Navara <navara@emclient.com> * Extract the latest commit at treePath along with the other commits. Signed-off-by: Filip Navara <navara@emclient.com> * Fix listing commit info for a directory that was created in one commit and never modified after. Signed-off-by: Filip Navara <navara@emclient.com> * Avoid nearly all external 'git' invocations when doing directory listing (.editorconfig code path is still hit). Signed-off-by: Filip Navara <navara@emclient.com> * Use go-git for reading blobs. Signed-off-by: Filip Navara <navara@emclient.com> * Make SHA1 type alias for plumbing.Hash in go-git. Signed-off-by: Filip Navara <navara@emclient.com> * Make Signature type alias for object.Signature in go-git. Signed-off-by: Filip Navara <navara@emclient.com> * Fix GetCommitsInfo for repository with only one commit. Signed-off-by: Filip Navara <navara@emclient.com> * Fix PGP signature verification. Signed-off-by: Filip Navara <navara@emclient.com> * Fix issues with walking commit graph across merges. Signed-off-by: Filip Navara <navara@emclient.com> * Fix typo in condition. Signed-off-by: Filip Navara <navara@emclient.com> * Speed up loading branch list by keeping the repository reference (and thus all the loaded packfile indexes). Signed-off-by: Filip Navara <navara@emclient.com> * Fix lising submodules. Signed-off-by: Filip Navara <navara@emclient.com> * Fix build Signed-off-by: Filip Navara <navara@emclient.com> * Add back commit cache because of name-rev Signed-off-by: Filip Navara <navara@emclient.com> * Fix tests Signed-off-by: Filip Navara <navara@emclient.com> * Fix code style * Fix spelling * Address PR feedback Signed-off-by: Filip Navara <navara@emclient.com> * Update vendor module list Signed-off-by: Filip Navara <navara@emclient.com> * Fix getting trees by commit id Signed-off-by: Filip Navara <navara@emclient.com> * Fix remaining unit test failures * Fix GetTreeBySHA * Avoid running `git name-rev` if not necessary Signed-off-by: Filip Navara <navara@emclient.com> * Move Branch code to git module * Clean up GPG signature verification and fix it for tagged commits * Address PR feedback (import formatting, copyright headers) * Make blob lookup by SHA working * Update tests to use public API * Allow getting content from any type of object through the blob interface * Change test to actually expect the object content that is in the GIT repository * Change one more test to actually expect the object content that is in the GIT repository * Add comments
This commit is contained in:
parent
19ec2606e9
commit
2af67f6044
44 changed files with 759 additions and 783 deletions
14
vendor/modules.txt
vendored
14
vendor/modules.txt
vendored
|
@ -410,8 +410,8 @@ gopkg.in/macaron.v1
|
|||
# gopkg.in/redis.v2 v2.3.2
|
||||
gopkg.in/redis.v2
|
||||
# gopkg.in/src-d/go-billy.v4 v4.3.0
|
||||
gopkg.in/src-d/go-billy.v4
|
||||
gopkg.in/src-d/go-billy.v4/osfs
|
||||
gopkg.in/src-d/go-billy.v4
|
||||
gopkg.in/src-d/go-billy.v4/util
|
||||
gopkg.in/src-d/go-billy.v4/helper/chroot
|
||||
gopkg.in/src-d/go-billy.v4/helper/polyfill
|
||||
|
@ -419,13 +419,14 @@ gopkg.in/src-d/go-billy.v4/helper/polyfill
|
|||
gopkg.in/src-d/go-git.v4
|
||||
gopkg.in/src-d/go-git.v4/config
|
||||
gopkg.in/src-d/go-git.v4/plumbing
|
||||
gopkg.in/src-d/go-git.v4/internal/revision
|
||||
gopkg.in/src-d/go-git.v4/plumbing/cache
|
||||
gopkg.in/src-d/go-git.v4/plumbing/filemode
|
||||
gopkg.in/src-d/go-git.v4/plumbing/object
|
||||
gopkg.in/src-d/go-git.v4/storage/filesystem
|
||||
gopkg.in/src-d/go-git.v4/internal/revision
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/gitignore
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/index
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/packfile
|
||||
gopkg.in/src-d/go-git.v4/plumbing/object
|
||||
gopkg.in/src-d/go-git.v4/plumbing/protocol/packp
|
||||
gopkg.in/src-d/go-git.v4/plumbing/protocol/packp/capability
|
||||
gopkg.in/src-d/go-git.v4/plumbing/protocol/packp/sideband
|
||||
|
@ -434,7 +435,6 @@ gopkg.in/src-d/go-git.v4/plumbing/storer
|
|||
gopkg.in/src-d/go-git.v4/plumbing/transport
|
||||
gopkg.in/src-d/go-git.v4/plumbing/transport/client
|
||||
gopkg.in/src-d/go-git.v4/storage
|
||||
gopkg.in/src-d/go-git.v4/storage/filesystem
|
||||
gopkg.in/src-d/go-git.v4/storage/memory
|
||||
gopkg.in/src-d/go-git.v4/utils/diff
|
||||
gopkg.in/src-d/go-git.v4/utils/ioutil
|
||||
|
@ -444,16 +444,16 @@ gopkg.in/src-d/go-git.v4/utils/merkletrie/index
|
|||
gopkg.in/src-d/go-git.v4/utils/merkletrie/noder
|
||||
gopkg.in/src-d/go-git.v4/internal/url
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/config
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/diff
|
||||
gopkg.in/src-d/go-git.v4/utils/binary
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/idxfile
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/diff
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/objfile
|
||||
gopkg.in/src-d/go-git.v4/storage/filesystem/dotgit
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/pktline
|
||||
gopkg.in/src-d/go-git.v4/plumbing/transport/file
|
||||
gopkg.in/src-d/go-git.v4/plumbing/transport/git
|
||||
gopkg.in/src-d/go-git.v4/plumbing/transport/http
|
||||
gopkg.in/src-d/go-git.v4/plumbing/transport/ssh
|
||||
gopkg.in/src-d/go-git.v4/plumbing/format/objfile
|
||||
gopkg.in/src-d/go-git.v4/storage/filesystem/dotgit
|
||||
gopkg.in/src-d/go-git.v4/utils/merkletrie/internal/frame
|
||||
gopkg.in/src-d/go-git.v4/plumbing/transport/internal/common
|
||||
gopkg.in/src-d/go-git.v4/plumbing/transport/server
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue