Merge pull request #3623 from invine/issue-3464

Skip lock file creation on forget with --no-lock and --dry-run
This commit is contained in:
MichaelEischer 2022-01-23 18:12:34 +01:00 committed by GitHub
commit df89aa0087
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 4 deletions

View file

@ -0,0 +1,9 @@
Enhancement: Skip lock creation on forget if --no-lock and --dry-run
Restic used to silently ignore --no-lock option of forget. It now skips
creation of lock file in case of both --dry-run and --no-lock are specified. If
--no-lock option is specified without --dry-run then restic prints a warning
message to stderr.
https://github.com/restic/restic/issues/3464
https://github.com/restic/restic/pull/3623

View file

@ -5,6 +5,7 @@ import (
"encoding/json"
"io"
"github.com/restic/restic/internal/errors"
"github.com/restic/restic/internal/restic"
"github.com/spf13/cobra"
)
@ -108,10 +109,16 @@ func runForget(opts ForgetOptions, gopts GlobalOptions, args []string) error {
return err
}
lock, err := lockRepoExclusive(gopts.ctx, repo)
defer unlockRepo(lock)
if err != nil {
return err
if gopts.NoLock && !opts.DryRun {
return errors.Fatal("--no-lock is only applicable in combination with --dry-run for forget command")
}
if !opts.DryRun || !gopts.NoLock {
lock, err := lockRepoExclusive(gopts.ctx, repo)
defer unlockRepo(lock)
if err != nil {
return err
}
}
ctx, cancel := context.WithCancel(gopts.ctx)