diff --git a/cmd/restic/cmd_recover.go b/cmd/restic/cmd_recover.go index e3ca596c5..c1c71333f 100644 --- a/cmd/restic/cmd_recover.go +++ b/cmd/restic/cmd_recover.go @@ -49,7 +49,7 @@ func runRecover(ctx context.Context, gopts GlobalOptions, term *termstatus.Termi return err } - ctx, repo, unlock, err := openWithAppendLock(ctx, gopts, false) + ctx, repo, unlock, err := openWithExclusiveLock(ctx, gopts, false) if err != nil { return err } @@ -62,6 +62,12 @@ func runRecover(ctx context.Context, gopts GlobalOptions, term *termstatus.Termi return err } + printer.P("ensuring index is complete\n") + err = repository.RepairIndex(ctx, repo, repository.RepairIndexOptions{}, printer) + if err != nil { + return err + } + printer.P("load index files\n") bar := newIndexTerminalProgress(gopts.Quiet, gopts.JSON, term) if err = repo.LoadIndex(ctx, bar); err != nil {