From 9225fb914fb2710feb42e2ff89a4a96b88ffc12f Mon Sep 17 00:00:00 2001 From: Alexander Weiss Date: Mon, 5 Sep 2022 16:59:34 +0200 Subject: [PATCH] forget: Don't apply keep policy for given ids --- src/commands/forget.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/commands/forget.rs b/src/commands/forget.rs index bc2f7b4..4f150ee 100644 --- a/src/commands/forget.rs +++ b/src/commands/forget.rs @@ -101,11 +101,16 @@ pub(super) async fn execute( while let Some(sn) = iter.next() { let (action, reason) = { - if sn.must_delete(now) { + if sn.must_keep(now) { + ("keep", "snapshot".to_string()) + } else if sn.must_delete(now) { forget_snaps.push(sn.id); ("remove", "snapshot".to_string()) + } else if !opts.ids.is_empty() { + forget_snaps.push(sn.id); + ("remove", "id argument".to_string()) } else { - match group_keep.matches(sn, last, iter.peek().is_some(), latest_time, now) { + match group_keep.matches(sn, last, iter.peek().is_some(), latest_time) { None if default_keep => ("keep", "".to_string()), None => { forget_snaps.push(sn.id); @@ -289,16 +294,10 @@ impl KeepOptions { last: Option<&SnapshotFile>, has_next: bool, latest_time: DateTime, - now: DateTime, ) -> Option { let mut keep = false; let mut reason = String::new(); - if sn.must_keep(now) { - keep = true; - reason.push_str("snapshot\n"); - } - if self .keep_ids .iter()