| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
filesystem: ObjectStorage, MaxOpenDescriptors option
|
| |
| |
| |
| |
| |
| |
| |
| | |
The MaxOpenDescriptors option provides a middle ground solution between keeping
all packfiles open (as offered by the KeepDescriptors option) and keeping none
open.
Signed-off-by: Arran Walker <arran.walker@fiveturns.org>
|
|/
|
|
|
|
|
|
|
|
| |
Large performance increase by buffering reads.
There were a few instances where binary.Read() would end up using reflection on
&plumbing.Hash, rather than treating it as a byte slice. This has now been
resolved.
Signed-off-by: Arran Walker <arran.walker@fiveturns.org>
|
|\
| |
| | |
storage: transactional, new storage with transactional capabilities
|
| |
| |
| |
| |
| |
| | |
CheckAndSetReference
Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| | |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| | |
commit histories (#963)
Signed-off-by: Filip Navara <navara@emclient.com>
|
|/
|
|
| |
Signed-off-by: Javier Peletier <jm@epiclabs.io>
|
|
|
|
|
|
| |
Suggested by taruti.
Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
|
|
|
|
| |
Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
|
|
|
|
| |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
|
|
|
|
| |
PackfileIter was not taking into account the option KeepDescriptors
and was always closing the file. This caused "file already closed"
errors when iterating packfiles in with KeepDescriptors active.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
| |
Signed-off-by: kuba-- <kuba@sourced.tech>
|
|
|
|
|
|
|
|
| |
Using equals to compare files it uses diff to do so. This can
potentially consume lots of ram. Changed the comparison to use file
offsets. If the descriptor is reused the offset is maintained.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
|
|
| |
Also delete Close from MockObjectStorage and memory storer.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
This option maintains packfile file descriptors opened after reading
objects from them. It improves performance as it does not have to be
opening packfiles each time an object is needed.
Also adds Close to EncodedObjectStorer to close all the files manualy.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
|
|
|
|
| |
This functionality was already tested in storage/filesystem.
The coverage tool only takes into account files from the same
package of the test.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
| |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
| |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
| |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
| |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
| |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also adds Static configuration to Storage and DotGit. This option means
that the git repository is not expected to be modified while open and
enables some optimizations.
Each time a file is accessed the storer tries to open an object file for
the requested hash. When this is done for a lot of objects it is
expensive. With Static option a list of object files is generated the
first time an object is accessed and used to check if exists instead of
using system calls.
A similar optimization is done for packfiles.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
|
|
| |
Also reformatted function comment and fixed some typos.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Search for incoming object directory was done once each time objects
were accessed. This means a ReadDir of the objects path that is
expensive. Now incoming directory is searched the first time an object
is accessed and its name kept in DotGit to be reused.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
After clone only resolved deltas were added to the cache. This caused
slowdowns in small repositories where most objects can be held in cache.
It also makes packfiles reuse delta cache from the store. Previously it
created a new delta cache each time a packfile object was created. This
also slowed down a bit accessing objects and had an impact on memory
consumption when bases are added to the cache.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|\
| |
| | |
added support for quarantine directory
|
| |
| |
| |
| | |
Signed-off-by: Santiago M. Mola <santi@mola.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Signed-off-by: noxora <ldecker@indeed.com>
trying a possible fix to the delete test
Signed-off-by: noxora <ldecker@indeed.com>
still trying to fix this test
Signed-off-by: noxora <ldecker@indeed.com>
fixes did not work, seems to be a windows env problem
Signed-off-by: noxora <ldecker@indeed.com>
|
| |
| |
| |
| | |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
| |
| |
| |
| | |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
| |
| |
| |
| | |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
| |
| |
| |
| | |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
| |
| |
| |
| | |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
| |
| |
| |
| | |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
| |
| |
| |
| | |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|\ \
| | |
| | | |
plumbing: packfile, new Packfile representation
|
| | |
| | |
| | |
| | | |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
|/ /
| |
| |
| | |
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
| |
| |
| |
| |
| |
| | |
Now dotgit.PackWriter uses the new packfile.Parser and index.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|/
|
|
| |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
norwfs build flag was used to work on filesystems that do not support neither opening a file in read/write mode or renaming a file (e.f. sivafs).
This had two problems:
- go-git could not be compiled to work properly both with regular filesystems and limited filesystems at the same time.
- the norwfs trick was not available on Windows.
This PR removes the norwfs build flag, as well as the windows conditional flag on the dotgit package.
For the file open mode, we use the new billy capabilities, to check at runtime if the filesystem supports opening a file in read/write mode or not.
For the renaming, we just try and fallback to alternative methods if billy.ErrNotSupported is returned.
Signed-off-by: Santiago M. Mola <santi@mola.io>
|
|
|
|
| |
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
|
|
|
|
| |
Signed-off-by: Antonio Jesus Navarro Perez <antnavper@gmail.com>
|
|
|
|
| |
Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
|
|\
| |
| | |
dotgit: ignore filenames that don't match a hash
|
| |
| |
| |
| |
| |
| |
| | |
Suggested by mcuadros.
Issue: src-d/go-git#807
Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
|
| |
| |
| |
| |
| |
| |
| | |
For both packfiles and object files.
Issue: keybase/client#11366
Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
|