add/commit: use hardlink to transfer files to the cache when cache.type is hardlink and on relink mode (#10557)

This commit is contained in:
skshetry
2024-09-17 13:09:32 +05:45
committed by GitHub
parent 2c871ba432
commit b8266ed15f
+6 -3
View File
@@ -752,8 +752,9 @@ class Output:
granular = (
self.is_dir_checksum and filter_info and filter_info != self.fs_path
)
hardlink = relink and next(iter(self.cache.cache_types), None) == "hardlink"
if granular:
obj = self._commit_granular_dir(filter_info, hardlink=False)
obj = self._commit_granular_dir(filter_info, hardlink=hardlink)
else:
staging, _, obj = self._build(
self.cache,
@@ -771,7 +772,7 @@ class Output:
self.cache,
{obj.hash_info},
shallow=False,
hardlink=False,
hardlink=hardlink,
callback=cb,
)
if relink:
@@ -1399,12 +1400,14 @@ class Output:
assert staging
assert obj.hash_info
hardlink = relink and next(iter(self.cache.cache_types), None) == "hardlink"
with TqdmCallback(desc=f"Adding {self} to cache", unit="file") as cb:
otransfer(
staging,
self.cache,
{obj.hash_info},
hardlink=False,
hardlink=hardlink,
shallow=False,
callback=cb,
)