From 943088df2c3317ff7d4e5b5e1c759ddb397f7b20 Mon Sep 17 00:00:00 2001 From: Alf Mikula Date: Tue, 8 Sep 2020 06:49:35 -0700 Subject: [PATCH] Keep oldest archive when retention target is not met --- src/borg/helpers/misc.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/borg/helpers/misc.py b/src/borg/helpers/misc.py index 3e62b3e4a..ea8655ab5 100644 --- a/src/borg/helpers/misc.py +++ b/src/borg/helpers/misc.py @@ -58,6 +58,10 @@ def prune_split(archives, rule, n, kept_because=None): kept_because[a.id] = (rule, len(keep)) if len(keep) == n: break + # Keep oldest archive if we didn't reach the target retention count + if len(keep) < n and a.id not in kept_because: + keep.append(a) + kept_because[a.id] = (rule+"[oldest]", len(keep)) return keep