Age | Commit message (Collapse) | Author |
|
This usage of a different header file is required to break a cyclic dependency
coming with the introduction of the garbage collector. entity_name implicitly
depends on local_cas, which will get a new dependency to garbage_collector.
garbage_collector depends on target_cache_entry, which transitively depends on
entity_name. entity_name_data instead does not depend on local_cas and breaks
the cycle.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Both, the python script as well as the compiled variant of just-mr
fetch try to overwrite already existing distfiles in the distdir.
While it is unclear if overwriting existing distfiles or not
copying to distdir if a file with that name already exists is the
better behaviour, we at least should not error out, as the compiled
just-mr currently does as it sets permission to 444 and hence cannot
overwrite later; fix this by addwing owner write permissions before
overwriting.
|
|
The absent value for an optional string is std::nullopt, not
the empty string.
|
|
just-mr fetch is supposed to fetch to the first (in search order)
distdir that is an existing directory (and error out if no such
directory exists). So, once a directory is found, there is no need
to create it---we already verified it is an existing directory.
|
|
... in error message reporting the lack of present distdirs.
|
|
For libcurl we need to set the CURL_FOLLOWLOCATION flag (disbaled by
default) to enable 3xx redirects. Libcurl has sane defaults for
related settings in order to handle redirects when enabled, though
for fetches there should be limited risks, as content (and SHA hashes,
if provided) is checked to ensure the intended archives are fetched.
|
|
|
|
... to ensure unique readability even with file names containing
spaces or other special symbols; those kind of fancy file names
typically occur when a string intended as named target is implicitly
taken as a file (e.g., due to a spelling error). While there, also
include directory and repository in the error message.
|
|
|
|
This provides the fix already performed for the just-mr script in
the internal just-mr as well. In short, this fix makes sure that the
computation of the content key for distdir repositories is
independent of the presence of the respective archives in CAS.
|
|
The subdir is required alongside the commit hash for a valid map
key when importing a Git repository into our Git cache.
|
|
Passing the logger by reference would require the caller to be
kept alive. Also, being a shared_ptr, the logger can be passed
by value at almost no cost.
|
|
Use intermediary unordered sets to store the repos to_setup and to_include
to avoid unnecessary duplicates. It is purely a performance benefit.
|
|
The parser was exiting early when the user gave no rc file, before
having the chance to look for the config file in the default locations.
|
|
... to show the argument vector properly serialized as json.
In this way, the vector can be read unambigiously even if
arguments contain white space.
|
|
... dumping only the configured targets that are export targets.
Those targets are of particular interest as those are the targets,
as they are the high-level caching points and also often serve
as interface between projects.
|
|
Make export targets identify themselves in the result_map,
so that we have accurate knowledge of the export targets
seen.
|
|
Allow in the addition of a target to the result map to indicate
that it was an export target; in this way, the information is
available as a result of the analysis.
|
|
|
|
|
|
|
|
|
|
|
|
Contains the logic for the checkout of all supported repositories.
|
|
Uses libarchive to unarchive the archives from CAS.
|
|
|
|
|
|
Calls libcurl to fetch the archives from the internet.
|
|
|
|
|
|
Needed by the content-in-CAS git map to check fetched archives' checksums.
SHA1 and SHA256 hashers are already implemented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|