summaryrefslogtreecommitdiff
path: root/src/buildtool/storage/fs_utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/storage/fs_utils.cpp')
-rw-r--r--src/buildtool/storage/fs_utils.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/buildtool/storage/fs_utils.cpp b/src/buildtool/storage/fs_utils.cpp
index 171a5d1c..05883814 100644
--- a/src/buildtool/storage/fs_utils.cpp
+++ b/src/buildtool/storage/fs_utils.cpp
@@ -104,6 +104,16 @@ auto GetResolvedTreeIDFile(StorageConfig const& storage_config,
tree_hash;
}
+auto GetRehashIDFile(StorageConfig const& storage_config,
+ HashFunction::Type target_hash_type,
+ std::string const& hash,
+ bool from_git,
+ std::size_t generation) noexcept -> std::filesystem::path {
+ return storage_config.GenerationCacheRoot(generation) /
+ fmt::format("to-{}", ToString(target_hash_type)) /
+ (from_git ? "from-git" : "from-cas") / hash;
+}
+
auto WriteTreeIDFile(std::filesystem::path const& tree_id_file,
std::string const& tree_id) noexcept -> bool {
// needs to be done safely, so use the rename trick