summaryrefslogtreecommitdiff
path: root/src/other_tools/just_mr/main.cpp
AgeCommit message (Collapse)Author
2025-05-22just-mr: Fix wrong setup root being picked upPaul Cristian Sarbu
This fixes a bug in which the setup root was falsely being changed by unconditionally searching early for a default configuration files, despite one being explicitly provided at the command line.
2025-04-22Remove redundant calls to std::filesystem::absoluteMaksim Denisov
...when calling std::filesystem::weakly_canonical, since the latter converts the argument path to an absolute path internally.
2025-03-10Invocation meta-data: include repository-config digestKlaus Aehlig
To do so, extend multi-repo setup to also return the digest of the configuration file.
2025-03-10just-mr: honor invocation-log parameters when launchingKlaus Aehlig
2025-02-11checkout locations: support extra environment variables to inheritKlaus Aehlig
2025-02-05just-mr gc-repo: support drop onlyKlaus Aehlig
As opposed to the regular CAS/cache, for the git repository implicit in the repository cache we cannot guarantee that data from older generation is always promoted via hard links. Therefore, a certain amount of data can be duplicated between the repo-cache generations. In order to allow compacting storage to the minimum, add an option to gc-repo to only remove the older generation, without rotating.
2024-11-14other_tools/just_mr: Implement IWYU suggestionsPaul Cristian Sarbu
2024-10-25Enable compatible mode for just-mr and SourceTree serve service...Paul Cristian Sarbu
...by using the new local api that can handle any remote endpoint, irrespective of protocol. Also ensure all tests for the serve service are now being run both in native and compatible modes.
2024-10-25just-mr: Use explicit naming in default instantiated storagePaul Cristian Sarbu
As just-mr will always create Git roots, be explicit in the names of variables to state that the default storage created is native.
2024-10-07Enable bugprone-empty-catch check.Maksim Denisov
2024-09-13Remove Compatibility flag from just-mrMaksim Denisov
2024-09-13Rename Compatibility class to ProtocolTraitsMaksim Denisov
...and move it to the common stage.
2024-07-22Rename HashFunction methods and enumsMaksim Denisov
2024-07-22Store HashFunction in StorageConfigMaksim Denisov
2024-07-19just-mr: add subcommand gc-repoKlaus Aehlig
2024-07-19Take shared repo-gc lock wherever neededKlaus Aehlig
2024-07-19Remove the RetryConfig singletonPaul Cristian Sarbu
...and replace it with instances created early via a builder pattern.
2024-07-18just-mr: Fix wrong exit code for --help callPaul Cristian Sarbu
Due to the specifics of how CLI11 library handles the --help argument and the fact that just-mr uses its own set of exit codes, we were correctly printing the help text, but falsely returning a non-zero exit code as result. This is now fixed.
2024-07-16StorageConfig: Store also the execution backend description idPaul Cristian Sarbu
...such that it will be available to the TargetCache for sharing. Also, GC does not require remote execution information, so the logic for this subcommand is moved earlier in main.
2024-07-05Convert StorageConfig to a general classMaksim Denisov
2024-07-05Convert Storage to a general classMaksim Denisov
2024-07-05Pass StorageConfig and Storage to just-mr mapsMaksim Denisov
2024-07-05Pass StorageConfig to GarbageCollector::SharedLockMaksim Denisov
2024-07-05Use StorageConfig functionality via Instance()Maksim Denisov
...to track changes during refactoring easier.
2024-06-25Use a general boolean for compatible in MultiRepoCommonArgumentsMaksim Denisov
2024-04-18just-mr: support retry for temporary grpc failuresKlaus Aehlig
... using the same mechanism that just uses. As just-mr now also does quite some grpc calls, e.g., fetching distribution files from the remote-execution endpoint and negociating roots with the serve endpoint, it may now also be affected by a bad network or a service temporarily be unavailable.
2024-04-10Add just-mr command-line option to estrict log limit on stderrKlaus Aehlig
2024-04-08Consistently guard all POSIX C includesPaul Cristian Sarbu
2024-02-27just-mr: Fix correct CAS storage location is usedPaul Cristian Sarbu
just-mr should always operate with the CAS location corresponding to the native protocol, i.e., using Git hashes. This way all the checks and transactions between local CAS and the Git cache are correct. The commit fixes the issue by ensuring we don't set globally the compatibility mode or hashing function if being passed the --compatible flag, as this flag should only be used to check comaptibility with any given remote endpoint and not affect the local CAS location used by just-mr.
2024-01-31just-mrrc: support remote-execution propertiesKlaus Aehlig
While just-mr does not use remote-execution properties, it is still useful to have those as a separate entry in the rc file. With rc-file delegation, this gives committed rc files an easy way to specify the image to be used without having to set all the remaining arguments for the various just subcommands in "just args".
2024-01-24just-mr: in to_git warning, report actual tool namesKlaus Aehlig
... instead of some hard-coded strings, as that can be confusing when the tool is packaged under a different name.
2024-01-09just-mr: don't make the command line pretend a fixed nameKlaus Aehlig
Our fetch and launch tool is parametric in the tool to be launched. Reflect this in the documentation and do not pretend it to be the name "just" hard coded. While there, also fix the hard-coded name "git" in the documentation of the default value.
2023-12-19other_tools: Fix missing includes of direct dependenciesPaul Cristian Sarbu
This fixes the multiple instances of (mainly) missing or wrong includes of standard, third-party, and own headers in the other_tools source folder.
2023-12-11just-mr: move rc handling to a separate libraryKlaus Aehlig
2023-11-16fetch-absent: Only allow option in native modePaul Cristian Sarbu
2023-11-15just-mr json parsing: Add missing check for items type in listsPaul Cristian Sarbu
2023-11-14just-mr: Parse mirrors specification from checkout locations filePaul Cristian Sarbu
2023-09-20just-mr: add option to override the absent pragmaKlaus Aehlig
Using absent repositories depends on a just-serve endpoint. As such, it is not a datum of the project, but one of the available infrastructure. As the latter can change independently of the project, it is desriable to have the option to specify those pieces of information in separate files.
2023-09-13just serve: Add endpoint argumentsPaul Cristian Sarbu
2023-09-07just-mr: allow subkeys to be skipped in RC filePaul Cristian Sarbu
If a key has a map value, do not force all its subkeys to be present. Fixes changes brought in with supporting remote execution and authentication options in just-mr.
2023-08-25just-mr fetch: Allow to back up fetched archives to a given remote CASPaul Cristian Sarbu
2023-08-25just-mr: Interrogate remote CAS before defaulting to network fetch...Paul Cristian Sarbu
...for archives not already in local CAS.
2023-08-25just-mr utils: Extract setup-related code into separate libraryPaul Cristian Sarbu
This better separates the utility methods used in just-mr commands and avoids any cyclic dependencies that might arise in new utility methods requiring both existing utilities and the command-line arguments.
2023-08-25just-mr: Add remote execution and mTLS argumentsPaul Cristian Sarbu
These have similar meanings as in 'just', are forwarded to 'just' subcommands that support them, and can be set also in the RC file via appropriate fields.
2023-08-23just-mr: Split main codePaul Cristian Sarbu
...by moving subcommands code into separate libraries. This maintains a cleaner code structure and lowers the build time by improving target caching.
2023-08-14just-mr: More consistent error messages in parsing RC filePaul Cristian Sarbu
2023-08-07just-mr maps: Add logic for resolving symlinks in archive repositoriesPaul Cristian Sarbu
2023-08-07just-mr maps: Add logic for resolving symlinks in file repositoriesPaul Cristian Sarbu
2023-08-07just-mr: Update async map keys with the 'special' pragma valuePaul Cristian Sarbu
For 'file' and 'archive' checkouts we will handle more than just the 'ignore' value.
2023-08-07just-mr: Add map for pragma 'special' valuesPaul Cristian Sarbu
Moves away from literal strings in the async maps.