From d670e2c7b254f267f66f60a8fa8d6598c8027984 Mon Sep 17 00:00:00 2001 From: Alexander Weiss Date: Wed, 15 Mar 2023 23:40:34 +0100 Subject: [PATCH] merge: respect delete-never and delete-after options --- src/commands/merge_cmd.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/commands/merge_cmd.rs b/src/commands/merge_cmd.rs index 4282e8c..6a8fe2c 100644 --- a/src/commands/merge_cmd.rs +++ b/src/commands/merge_cmd.rs @@ -101,9 +101,14 @@ pub(super) fn execute( info!("saved new snapshot as {new_id}."); if opts.delete { + let now = Local::now(); let p = progress_counter("deleting old snapshots..."); - let snap_ids = snapshots.iter().map(|sn| &sn.id); - be.delete_list(FileType::Snapshot, true, snap_ids, p)?; + let snap_ids: Vec<_> = snapshots + .iter() + .filter(|sn| !sn.must_keep(now)) + .map(|sn| &sn.id) + .collect(); + be.delete_list(FileType::Snapshot, true, snap_ids.into_iter(), p)?; } Ok(())