From 94ae6cc7e4d2a46057130bf4cead1e86e226d5b1 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Wed, 29 Jan 2025 12:46:06 +0100 Subject: garbage collection: remove garbage recursively When garbage collecting the oldest generation, we expect it to be a non-empty directory. Therefore, remove it recursively. (cherry-picked from 48c2382218a5af10177e68ba24091e77f1e045e6) --- src/buildtool/storage/repository_garbage_collector.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/buildtool/storage/repository_garbage_collector.cpp b/src/buildtool/storage/repository_garbage_collector.cpp index 67a08f9f..e21ca19a 100644 --- a/src/buildtool/storage/repository_garbage_collector.cpp +++ b/src/buildtool/storage/repository_garbage_collector.cpp @@ -55,7 +55,8 @@ auto RepositoryGarbageCollector::TriggerGarbageCollection( return false; } if (FileSystemManager::IsDirectory(remove_me)) { - if (not FileSystemManager::RemoveDirectory(remove_me)) { + if (not FileSystemManager::RemoveDirectory(remove_me, + /*recursively=*/true)) { Logger::Log(LogLevel::Error, "Failed to remove directory {}", remove_me.string()); @@ -107,7 +108,8 @@ auto RepositoryGarbageCollector::TriggerGarbageCollection( return false; } if (FileSystemManager::IsDirectory(remove_me)) { - if (not FileSystemManager::RemoveDirectory(remove_me)) { + if (not FileSystemManager::RemoveDirectory(remove_me, + /*recursively=*/true)) { Logger::Log(LogLevel::Error, "Failed to remove directory {}", remove_me.string()); -- cgit v1.2.3