summaryrefslogtreecommitdiff
path: root/src/buildtool/file_system
AgeCommit message (Collapse)Author
2025-06-11GitRepo: Fix wrong handling of fatal loggingPaul Cristian Sarbu
...in creating Git tree from filesystem directory. (cherry-picked from 6b31a88acbe6a6556e36f838b914a82879949811)
2025-06-11GitRepo: Use std::invoke to call generic loggerPaul Cristian Sarbu
(cherry-picked from cf33c43c8b12d39d0a6b3751db3f58a9895cd41d)
2025-06-11GitRepo: Methods expected to use a logger should do so...Paul Cristian Sarbu
...in all return paths, including in reporting caught exceptions. In this way give the opportunity for any calling AsyncMap to receive an expected fatal logger call on failure and thus be able to shut down gracefully. This is in line with the AsyncMap design, where the loggers are assumed to be safe to call by a consumer. (cherry-picked from ae33d0f287e83769dbef9287e64006e1c0c463e9)
2025-04-01Add library for atomically writing filesKlaus Aehlig
... by using the write-rename dance. This allows processes waiting for pid or similar files to rely on the information being available as soon as the file is available. (cherry-picked from 1efdbe20d506990028caccbfbc7fd241b5a01a99)
2025-03-05resolve_symlinks_map: Fix missing ignore special flag in reading treePaul Cristian Sarbu
2025-03-05FileSystemManager: Let caller decide log level for reading directoryPaul Cristian Sarbu
Do not emit errors when it does not lead to build failures. Callers handle the log level at which failures of this method should be logged.
2025-02-28Include ArtifactDigestFactory into "common" libraryMaksim Denisov
2025-02-21FileSystemManager: Use IncrementalReaderMaksim Denisov
2025-02-20Separate off id generation to a separate libraryKlaus Aehlig
... and rename appropriately to reflect contents more precisely than the generic "common". This separation also disentangles dependencies a bit.
2025-02-19Store HashFunction by valueMaksim Denisov
Although references give an additional information about ownership, they introduce additional design difficulties.
2025-02-14Add enum for add-to-cas resolve special optionPaul Cristian Sarbu
2025-02-14code structure: rename symlinks_map folder to symlinksPaul Cristian Sarbu
...to remove the unnecessary link between folder name and the logic of resolve_symlinks_map.
2025-02-14pragma_special.hpp: Inline global scope mapsPaul Cristian Sarbu
2025-01-22Git CAS access: reduce log levelKlaus Aehlig
Trying to access a git object return a recoverable failure, hence the failure to find the object in the git object database should be logged at warning level at most. Moreover, in some cases we should log that event at an even lower level, e.g., if we're just checking the presence of the object in the local git cas to avoid unnecessary network access.
2025-01-22Computed roots: extend data structure to support the absent pragmaKlaus Aehlig
2025-01-21Just: Support absent tree structure rootsMaksim Denisov
2025-01-15Add to GitRepo common implementation IsTreeInRepoMaksim Denisov
2025-01-15Add to GitRepo common implementation of ImportToGitMaksim Denisov
2024-12-19Implement TreeStructureRootMaksim Denisov
2024-12-19FileRoot: disclose RootGit data.Maksim Denisov
2024-12-19Remove FileRoot::ComputedRootMaksim Denisov
2024-12-19Use PrecomputedRoots during evaluationMaksim Denisov
2024-12-19Support PrecomputedRoots in FileRootMaksim Denisov
2024-12-19Implement PrecomputedRootsMaksim Denisov
...that is an abstract representation of roots that must be computed before the start of the main build.
2024-12-19Fix cause of minor warningsOliver Reiche
2024-12-19Fix struct member initializationOliver Reiche
2024-12-19Remove unused functionOliver Reiche
2024-12-11GitCAS::Open: allow specifying the log-level for failureKlaus Aehlig
This method returns a GitCASPtr allowing the caller to handle failure gracefully. Therefore, logging should be at most at level Warning as it is up to the caller to provide the fatal error message. Moreover, it can be at lower level in cases where failure to open that git cas is not an unexpected event, e.g., when looking for a blob in local mirrors first.
2024-12-09Use expected to return an error from ParseRootMaksim Denisov
2024-12-05GitCAS: remove friend GitRepoMaksim Denisov
...and access internal state via getters.
2024-12-05GitCAS: remove mutex and locksMaksim Denisov
...since there are no unique_locks any more.
2024-12-05GitRepo: don't reassign git_repository to git_odbMaksim Denisov
...and remove GuardedRepo.
2024-12-05GitCAS: retain git_repository alive.Maksim Denisov
2024-12-05GitCAS: implement method for creation of an empty GitCASMaksim Denisov
...and use it in GitRepo to set custom backends.
2024-12-05GitCAS: remove redundant methodMaksim Denisov
2024-12-05GitCAS: avoid manual memory managementMaksim Denisov
...and fix a potential memory leak in the try-catch for std::filesystem::absolute.
2024-12-05GitCAS: use the same call for openning repository as GitRepo does.Maksim Denisov
2024-12-05GitRepo: keep GuardedRepo unexposed and adjust the interface.Maksim Denisov
2024-12-03For FetchIntoODBBackend "Ensure" backend is validMaksim Denisov
2024-12-03Avoid double deletion of git_repository in GuardedRepoMaksim Denisov
2024-12-02Synchronize initialization of a git repo across processesMaksim Denisov
2024-11-28Ensure gitstrarray gets created with alive pointers.Maksim Denisov
2024-11-21FileRoot::ComputedRoot: add ToString() methodKlaus Aehlig
2024-11-21ObjectCas: demote log message on absent blob to traceKlaus Aehlig
The way we use our object cas, it is not unsual that a blob asked for is not present. Therefore, logging this at debug level floods that level with too many messages irrelevant for debugging. Fix this, be demoting to trace level.
2024-11-21Add data structure for the description of a computed rootKlaus Aehlig
2024-11-14file_system: Implement IWYU suggestionsPaul Cristian Sarbu
2024-10-29Clean up unused dependenciesKlaus Aehlig
2024-10-10Remove from OSS intersecting public-private dependenciesMaksim Denisov
2024-10-08Name local variables using lower_caseMaksim Denisov
...and private members using lower_case_
2024-10-08Name global constants using kCamelCase.Maksim Denisov