prune: allow dry-run without taking a lock

This commit is contained in:
Michael Eischer 2024-10-17 20:52:14 +02:00
parent b8b7896d4c
commit b8527f4b38
2 changed files with 12 additions and 1 deletions

View file

@ -0,0 +1,7 @@
Enhancement: Allow prune dry-run without lock
The `prune --dry-run --no-lock` now allows performing a dry-run without
taking a lock. If the repository is modified concurrently, `prune` may
return inaccurate statistics or errors.
https://github.com/restic/restic/pull/5096

View file

@ -149,7 +149,11 @@ func runPrune(ctx context.Context, opts PruneOptions, gopts GlobalOptions, term
return errors.Fatal("disabled compression and `--repack-uncompressed` are mutually exclusive") return errors.Fatal("disabled compression and `--repack-uncompressed` are mutually exclusive")
} }
ctx, repo, unlock, err := openWithExclusiveLock(ctx, gopts, false) if gopts.NoLock && !opts.DryRun {
return errors.Fatal("--no-lock is only applicable in combination with --dry-run for prune command")
}
ctx, repo, unlock, err := openWithExclusiveLock(ctx, gopts, opts.DryRun && gopts.NoLock)
if err != nil { if err != nil {
return err return err
} }