From 2409078d55702b7359506839fd7a4038e671d9b0 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Sun, 23 Mar 2025 17:47:27 +0100 Subject: [PATCH] recover: automatically run repair index before recovering snapshots --- cmd/restic/cmd_recover.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 {