diff --git a/cmd/restic/cmd_prune.go b/cmd/restic/cmd_prune.go index 0ff4600b8..3b9f4f505 100644 --- a/cmd/restic/cmd_prune.go +++ b/cmd/restic/cmd_prune.go @@ -290,14 +290,6 @@ func prune(opts PruneOptions, gopts GlobalOptions, repo restic.Repository, usedB var repackCandidates []packInfoWithID - repack := func(id restic.ID, p packInfo) { - repackPacks.Insert(id) - stats.blobs.repack += p.unusedBlobs + p.duplicateBlobs + p.usedBlobs - stats.size.repack += p.unusedSize + p.usedSize - stats.blobs.repackrm += p.unusedBlobs - stats.size.repackrm += p.unusedSize - } - // loop over all packs and decide what to do bar := newProgressMax(!gopts.Quiet, uint64(len(indexPack)), "packs processed") bar.Start() @@ -388,6 +380,14 @@ func prune(opts PruneOptions, gopts GlobalOptions, repo restic.Repository, usedB return pi.unusedSize*pj.usedSize > pj.unusedSize*pi.usedSize }) + repack := func(id restic.ID, p packInfo) { + repackPacks.Insert(id) + stats.blobs.repack += p.unusedBlobs + p.duplicateBlobs + p.usedBlobs + stats.size.repack += p.unusedSize + p.usedSize + stats.blobs.repackrm += p.unusedBlobs + stats.size.repackrm += p.unusedSize + } + for _, p := range repackCandidates { reachedUnusedSizeAfter := (stats.size.unused-stats.size.remove-stats.size.repackrm < maxUnusedSizeAfter) reachedRepackSize := (len(opts.MaxRepackSize) > 0 && stats.size.repack+p.unusedSize+p.usedSize > opts.MaxRepackBytes)