storage: transactional, new storage with transactional capabilities (…
…WIP) Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
plumbing: storer, new NewMultiReferenceIter
Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
Merge pull request #1028 from smola/clone-regression
repository: fix plain clone error handling regression
plumbing: format/packfile, performance optimizations for reading larg…
…e commit histories (#963) Signed-off-by: Filip Navara <navara@emclient.com>
git: return better error message when packfile cannot be downloaded
Previously the error message when the connection was closed while fetching was "object not found" and was misleading. Now when the packfile size is 0 the error "unable to fetch packfile" is returned. Signed-off-by: Javi Fontan <jfontan@gmail.com>
plumbing/packfile: test UpdateObjectStorage empty packfile error
Signed-off-by: Javi Fontan <jfontan@gmail.com>
Merge pull request #1031 from jfontan/fix/error-fetching
git: return better error message when packfile cannot be downloaded
storage: new storage.ErrReferenceHasChanged error and test for CheckA…
…ndSetReference Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
storage: transactional, new storage with transactional capabilities
Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
storage/dotgit: use fs capabilities in setRef
Do not use tags to check if the filesystem is able to open files in read/write mode. Signed-off-by: Javi Fontan <jfontan@gmail.com>
storage/dotgit: test setRef with a non rwfs
Signed-off-by: Javi Fontan <jfontan@gmail.com>
Merge pull request #1036 from jfontan/fix/capabilities-setref
storage/dotgit: use fs capabilities in setRef
Simplify return statement in receivePackNoCheck
Fixes #1035 Signed-off-by: Iskander Sharipov <quasilyte@gmail.com>
Merge pull request #1037 from Quasilyte/patch-1
Simplify return statement in receivePackNoCheck
First lookup if hash exists, then GetCommit.
Signed-off-by: kuba-- <kuba@sourced.tech>
Merge pull request #1045 from kuba--/enh-1024/log-all
Implement git log --all
storage/filesystem: check file object before using cache
If the cache is shared between several repositories getFromUnpacked can erroneously return an object from other repository. This decreases performance a little bit as there's an extra fs operation when the object is in the cache but is correct when the cache is shared. Signed-off-by: Javi Fontan <jfontan@gmail.com>
Merge pull request #1056 from jfontan/fix/lose-objects-shared-cache
storage/filesystem: check file object before using cache
packfile: get object size correctly for delta objects
Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
storage: transactional, package documentation
Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
Merge pull request #1006 from mcuadros/transactional-storage
storage: transactional, new storage with transactional capabilities
Merge pull request #1060 from keybase/strib/gh-KBFS-3828-packfile-obj…
…ect-size packfile: get object size correctly for delta objects
worktree: add sentinel error for non-fast-forward pull
Signed-off-by: Alexey Smirnov <unlinkat@gmail.com>
Merge pull request #1064 from asv/sentinel_error_for_no_ff_update
worktree: add sentinel error for non-fast-forward pull
Remove Unicode normalization in difftree
Fixes #1057 Signed-off-by: Vadim Markovtsev <vadim@sourced.tech>
revlist: add ObjectsWithStorageForIgnores method
`ObjectsWithStorageForIgnores` is the same as `Objects`, but a secondary storage layer can be provided, to be used to finding the full set of objects to be ignored while finding the reachable objects. This is useful when the main `s` storage layer is slow and/or remote, while the ignore list is available somewhere local. Issue: #909 Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
config: add a way to see if a "remote" URL is local or not
This factors out some URL-parsing code from the transport layer so it can be used by config as well. Issue: #909 Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
remote: when pushing to a local repo, use local store for ignores
Issue: #909 Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
Ignore missing references on log --all
To mimic the actual standard git behavior, we must ignore references that are pointing to wrong/unexistent objects. Signed-off-by: Antonio Jesus Navarro Perez <antnavper@gmail.com>
Signed-off-by: Antonio Jesus Navarro Perez <antnavper@gmail.com>
Merge pull request #1066 from keybase/strib/909-git-push-speedup-when…
…-local remote: speed up pushes when the "remote" repo is local
Merge pull request #1067 from ajnavarro/fix/log-all-missing-objects
Ignore missing references/objects on log --all
Merge pull request #1065 from vmarkovtsev/fix-unicode
Remove Unicode normalization in difftree