| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Mark Bartel <github@spottybenny.ca>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Mark Bartel <github@spottybenny.ca>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Mark Bartel <github@spottybenny.ca>
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
storage/dotgit: add KeepDescriptors option
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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>
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
plumbing/storer: add ExclusiveAccess option to Storer
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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>
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
keybase/taruti/cherrypick-for-upstream-clamp-object-timestamp
Clamp object timestamps before unix epoch to unix epoch
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Signed-off-by: Taru Karttunen <taruti@taruti.net>
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
config: add commentChar to core config struct
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Signed-off-by: Zaq? Wiedmann <zaquestion@gmail.com>
|
|\ \ \ \ \ \ \ \ \
| |_|_|/ / / / / /
|/| | | | | | | | |
Remove empty dirs when cleaning with Dir opt.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Signed-off-by: kuba-- <kuba@sourced.tech>
|
| |/ / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Signed-off-by: kuba-- <kuba@sourced.tech>
|
|\ \ \ \ \ \ \ \
| |/ / / / / / /
|/| | | | | | | |
storage/dotgit: search for incoming dir only once
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
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>
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
plumbing, storage: add bases to the common cache
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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>
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
plumbing/idxfile: object iterators returns entries in offset order
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
In the latest change the order was changed from offset order in
packfiles to hash order. This makes reading all the objects not as
efficient as before. It also created problems when the previous order
was expected.
Also added EntriesByOffset to indexes.
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>
|
|\ \ \ \ \ \ \ \
| |_|/ / / / / /
|/| | | | | | | |
plumbing/object: fix panic when reading object header
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
When the first line of the pgp signature is an empty line or some header
is malformed it crashes as there's no data for the header element. For
example, if author name is "\n".
Signed-off-by: Javi Fontan <jfontan@gmail.com>
|
|\ \ \ \ \ \ \ \
| |/ / / / / / /
|/| | | | | | | |
Fixed an edge case for .gitignore
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Fixes #923
Signed-off-by: Fedor Korotkov <fedor.korotkov@gmail.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Just renaming the TagObjectOptions type to CreateTagOptions so that it's
consistent with the other option types.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Added a couple of tests for annotated tag deletion:
* The first one is a general test and should work regardless of the
fixture used - the tag object could possibly be packed, so we do a prune
*and* a repack operation before testing to see if the object was GCed
correctly.
* The second one actually creates the tag to be deleted, so that the tag
object gets created as a loose, unpacked object. This is so we can
effectively test that purning unpacked objects is now working 100%
correctly (this was failing before because tag objects were not
supported for walking).
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Deleting a tag ref for an annotated tag in normal git behavior does not
delete the tag object right away. This is handled by the normal GC
process.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This is necessary to support pruning on Tag objects.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This is to avoid any ambiguity with the act of "fetching" in git in
general.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
I've mainly noticed that in using the current Tag function, that there
were lots of times that I was ignoring the ref or the object, depending
on what I needed. This was evident in the tests as well. As such, I
think it just makes more sense for a singular tag fetcher to return just
a ref, through which the caller may grab the annotation if they need it,
and if it exists.
Also, contrary to the docs on Tags, all tags have a ref, even if they
are annotated. The difference between a lightweight tag and an annotated
tag is the presence of the tag object, which the ref will point to if
the tag is annotated. As such I've adjusted the docs with an example as
to how one can get the annotation for a tag ref through the iterator.
Source: https://git-scm.com/book/en/v2/Git-Internals-Git-References,
tags section.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
I figured there was a way to do this without having to have
TagObjectOptions supply this in - there is.
Added support for this in and removed the object type from
TagObjectOptions.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The old one was created with defaults, which would have caused CI
failures in 2 years.
The new one is valid for 10 years:
> gpg --list-secret-keys
/root/.gnupg/pubring.kbx
------------------------
sec rsa4096 2018-08-22 [SC] [expires: 2028-08-19]
93A17FF01E54328546087C8E029395402EFCCD53
uid [ unknown] foo bar <foo@foo.foo>
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Tag messages are highly sensitive to being in the expected format,
especially when encoding/decoding for PGP verification.
As such, we do a simple trimming of whitespace on the incoming message
and add a newline on the end, to ensure there are no surprises here.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Tag encoding/decoding seems to be a lot more sensitive to requiring the
exact expected format in the object, which generally includes messages
canonicalized so that they have a newline on the end (even if they
didn't before).
As such, the message should be written with the newline (no need for an
extra), and the PGP signature right after that, which will be newline
split already, so there's no need to split it again.
All of this means it's very important for the caller to send the message
in the correct format - which I'm correcting in the next commit.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
As with the update in ec3d2a8, tag encoding needed to be corrected to
ensure extra newlines were not being added in during tag object
encoding, so that it did not corrupt the object for verification.
Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
|