Age | Commit message (Collapse) | Author |
|
...and access internal state via getters.
(cherry-picked from ca952159e778f0ed927082832a195842f6229a94)
|
|
...since there are no unique_locks any more.
(cherry-picked from 9a164558010af84d834dee86f1929bd6582a1ccb)
|
|
...and remove GuardedRepo.
(cherry-picked from d9f39250d302152d19a0aacd76eabae7a013f1a8)
|
|
(cherry-picked from 7b50ad08180edb160d023ed61518cd9256f65f70)
|
|
...and use it in GitRepo to set custom backends.
(cherry-picked 99860b78304817c4d5b27ec4c661b733e30a430a)
|
|
(cherry-picked from f40780393d68e2ebb866d8b941b5a30f0ea5f0de)
|
|
...and fix a potential memory leak in the try-catch for std::filesystem::absolute.
(cherry-picked from 44ec2679c68cbe6141b76d9758b5986725a62d91)
|
|
(cherry-picked from cdd3a6a777a36ff98b60cf47c91281a69c39c4e2)
|
|
(cherry-picked from d9f39250d302152d19a0aacd76eabae7a013f1a8)
|
|
(cherry-picked from 59a485598d1a57b78fb60fe7df7dfe08a1cadd83)
|
|
|
|
(cherry-picked from 9dc61e9faca5e8b05a1a2a2eed83a5468aeb6202)
|
|
|
|
|
|
...and private members using lower_case_
|
|
|
|
|
|
|
|
|
|
...since we use recursion for trees a lot, but skip this check manually.
|
|
|
|
|
|
|
|
|
|
|
|
...and remove unused code from git_utils
|
|
Enable performance-enum-size check.
|
|
...proposed by clang-tidy.
Enable bugprone-optional-value-conversion check.
|
|
...proposed by clang-tidy.
Enable bugprone-assignment-in-if-condition check.
|
|
|
|
Despite the fact that HashFunction is a small type, it still makes sense to store it by reference to reflect the ownership. StorageConfig becomes the main holder.
Reference holders store HashFunction by const ref and aren't allowed to change it. However, they are free to return HashFunction by value since this doesn't benefit readability anyhow.
|
|
...to get the protocol type.
|
|
...that is to be used by FileRoot::ToArtifactDescription.
|
|
...and move it to the common stage.
|
|
...from Compatibility.
|
|
|
|
...to create ArtifactDigests.
|
|
...to create ArtifactDigests.
|
|
...with ArtifactDigestFactory::HashDataAs
|
|
...with ArtifactDigestFactory::HashFileAs
|
|
...with ArtifactDigest.
|
|
...with ArtifactDigest.
|
|
|
|
The default options of std::filesystem::copy include following
symlinks, resulting in file repositories creating wrong trees if
containing unresolved symlinks, or failing unexpectedly early if
symlink cycles existed.
This is fixed by ensuring the copy_symlinks option is always used.
|
|
... while keeping our .clang-format file.
|
|
...by writing its tree directly in the object database instead of
working with the index. This allows the creation of trees that
contain also entries with 'magic' names, such as the .git folder
or .gitignore files.
Callers must ensure the given directory only contains the needed
entries. In particular, just-mr maps and serve service are updated
to separate the import-to-Git repository path from the temporary
path containing the content to be committed, to avoid polluting the
content path with entries generated on repository initialization.
|
|
The tree is traversed bottom-up and each entry is explicitly added
to the object database: non-directory entries have their content
read and are added as blobs with corresponding permissions based on
file type (regular, executable, symlink), while subdirectories are
added as trees via CreateTree based on the already added blobs.
|
|
In preparation for subsequent changes, specify the directory path
containing the tree content to be committed explicitly. This change
will allow eventually to be able to specify paths that are
different from the root path of the repository in which the commit
is created.
This commit renames and refactors StageAndCommitAllAnnonymous to
allow a directory path to be passed. The just-mr and serve service
logic is updated such that current behaviour is otherwise
unchanged.
|
|
The libgit2 treebuilder has unnecessary validity checks for tree
entries, including for Git-specific magic names (such as '.git'),
which cannot be disabled. However, in our tool any filesystem
entry should be allowed to be part of a tree.
Therefore, the treebuilder-based implementation for CreateTree is
replaced by a direct writing of trees, by content, into the
underlying repository object database.
Additionally, as direct insertion into the object dabase does not
check the validity of the tree entries, as was done implicitly by
the treebuilder before, add a check for existence of the tree
entries into the debug-level generic validity check, with the
option to not perform it for ReadTree (as it is unnecessary there).
|
|
|