Remove RepackSmall

This commit is contained in:
Alexander Neumann 2020-11-03 12:20:46 +01:00
parent 1dd9fdce74
commit 095155d9ce
2 changed files with 7 additions and 22 deletions

View file

@ -37,13 +37,12 @@ Exit status is 0 if the command was successful, and non-zero if there was any er
// PruneOptions collects all options for the cleanup command. // PruneOptions collects all options for the cleanup command.
type PruneOptions struct { type PruneOptions struct {
DryRun bool DryRun bool
MaxUnused string MaxUnused string
MaxUnusedPercent float64 MaxUnusedPercent float64
MaxUnusedBytes uint64 MaxUnusedBytes uint64
MaxRepackSize string MaxRepackSize string
MaxRepackBytes uint64 MaxRepackBytes uint64
// RepackSmall bool <- This option may be added later
RepackCachableOnly bool RepackCachableOnly bool
} }
@ -61,7 +60,6 @@ func addPruneOptions(c *cobra.Command) {
f.StringVar(&pruneOptions.MaxUnused, "max-unused", "5%", "tolerate given `limit` of unused space (allowed suffixes: k/K, m/M, g/G, t/T or value in %)") f.StringVar(&pruneOptions.MaxUnused, "max-unused", "5%", "tolerate given `limit` of unused space (allowed suffixes: k/K, m/M, g/G, t/T or value in %)")
f.StringVar(&pruneOptions.MaxRepackSize, "max-repack-size", "", "maximum `size` to repack (allowed suffixes: k/K, m/M, g/G, t/T)") f.StringVar(&pruneOptions.MaxRepackSize, "max-repack-size", "", "maximum `size` to repack (allowed suffixes: k/K, m/M, g/G, t/T)")
f.BoolVar(&pruneOptions.RepackCachableOnly, "repack-cacheable-only", false, "only repack packs which are cacheable") f.BoolVar(&pruneOptions.RepackCachableOnly, "repack-cacheable-only", false, "only repack packs which are cacheable")
// f.BoolVar(&pruneOptions.RepackSmall, "repack-small", false, "also repack small packs")
} }
func verifyPruneOptions(opts *PruneOptions) error { func verifyPruneOptions(opts *PruneOptions) error {
@ -314,7 +312,7 @@ func prune(opts PruneOptions, gopts GlobalOptions, repo restic.Repository, usedB
case opts.RepackCachableOnly && p.tpe == restic.DataBlob, case opts.RepackCachableOnly && p.tpe == restic.DataBlob,
// if this is a data pack and --repack-cacheable-only is set => keep pack! // if this is a data pack and --repack-cacheable-only is set => keep pack!
p.unusedBlobs == 0 && p.duplicateBlobs == 0 && p.tpe != restic.InvalidBlob: // && (!opts.RepackSmall || packSize >= repository.MinPackSize) p.unusedBlobs == 0 && p.duplicateBlobs == 0 && p.tpe != restic.InvalidBlob:
// All blobs in pack are used and not duplicates/mixed => keep pack! // All blobs in pack are used and not duplicates/mixed => keep pack!
stats.packs.keep++ stats.packs.keep++
@ -364,10 +362,6 @@ func prune(opts PruneOptions, gopts GlobalOptions, repo restic.Repository, usedB
return true return true
case pj.tpe == restic.InvalidBlob && pi.tpe != restic.InvalidBlob: case pj.tpe == restic.InvalidBlob && pi.tpe != restic.InvalidBlob:
return false return false
//case opts.RepackSmall && pi.unusedSize+pi.usedSize < repository.MinPackSize && pj.unusedSize+pj.usedSize >= repository.MinPackSize:
// return true
//case opts.RepackSmall && pj.unusedSize+pj.usedSize < repository.MinPackSize && pi.unusedSize+pi.usedSize >= repository.MinPackSize:
// return false
} }
return pi.unusedSize*pj.usedSize > pj.unusedSize*pi.usedSize return pi.unusedSize*pj.usedSize > pj.unusedSize*pi.usedSize
}) })

View file

@ -1409,15 +1409,6 @@ func TestPrune(t *testing.T) {
checkOpts := CheckOptions{ReadData: true} checkOpts := CheckOptions{ReadData: true}
testPrune(t, opts, checkOpts) testPrune(t, opts, checkOpts)
}) })
/* repack-small option will come in future
t.Run("Small", func(t *testing.T) {
opts = PruneOptions{MaxUnusedPercent: 100.0, RepackSmall: true}
// The test case only produces small files; hence no unused blobs should remain.
checkOpts = CheckOptions{ReadData: true, CheckUnused: true}
testPrune(t, opts, checkOpts)
})
*/
} }
func testPrune(t *testing.T, pruneOpts PruneOptions, checkOpts CheckOptions) { func testPrune(t *testing.T, pruneOpts PruneOptions, checkOpts CheckOptions) {