diff --git a/cmd/restic/cmd_copy.go b/cmd/restic/cmd_copy.go index 1e01e170b..096ce76c6 100644 --- a/cmd/restic/cmd_copy.go +++ b/cmd/restic/cmd_copy.go @@ -243,9 +243,7 @@ func copyTree(ctx context.Context, srcRepo restic.Repository, dstRepo restic.Rep } bar := printer.NewCounter("packs copied") - bar.SetMax(uint64(len(packList))) err = repository.Repack(ctx, srcRepo, dstRepo, packList, copyBlobs, bar, printer.P) - bar.Done() if err != nil { return errors.Fatalf("%s", err) } diff --git a/internal/repository/prune.go b/internal/repository/prune.go index 022d32a10..463efee11 100644 --- a/internal/repository/prune.go +++ b/internal/repository/prune.go @@ -563,9 +563,7 @@ func (plan *PrunePlan) Execute(ctx context.Context, printer progress.Printer) er if len(plan.repackPacks) != 0 { printer.P("repacking packs\n") bar := printer.NewCounter("packs repacked") - bar.SetMax(uint64(len(plan.repackPacks))) err := Repack(ctx, repo, repo, plan.repackPacks, plan.keepBlobs, bar, printer.P) - bar.Done() if err != nil { return errors.Fatalf("%s", err) } diff --git a/internal/repository/repack.go b/internal/repository/repack.go index 838017f48..730325afd 100644 --- a/internal/repository/repack.go +++ b/internal/repository/repack.go @@ -42,6 +42,8 @@ func Repack( if logf == nil { logf = func(_ string, _ ...interface{}) {} } + p.SetMax(uint64(len(packs))) + defer p.Done() if repo == dstRepo && dstRepo.Connections() < 2 { return errors.New("repack step requires a backend connection limit of at least two")