From 29bb845f0efee42c59062b5f4620ad5b5a668116 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Mon, 15 Aug 2016 20:46:24 +0200 Subject: [PATCH] Rebuild index at the end of prune --- src/cmds/restic/cmd_prune.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/cmds/restic/cmd_prune.go b/src/cmds/restic/cmd_prune.go index 228e7ac0b..a7f81da38 100644 --- a/src/cmds/restic/cmd_prune.go +++ b/src/cmds/restic/cmd_prune.go @@ -175,11 +175,27 @@ func (cmd CmdPrune) Execute(args []string) error { cmd.global.Verbosef("creating new index\n") - err = repository.RebuildIndex(repo) + idx, err = index.New(repo) if err != nil { return err } + id, err := idx.Save(repo) + if err != nil { + return err + } + cmd.global.Verbosef("saved new index as %v\n", id.Str()) + + for oldIndex := range repo.List(backend.Index, done) { + if id.Equal(oldIndex) { + continue + } + err := repo.Backend().Remove(backend.Index, oldIndex.String()) + if err != nil { + fmt.Fprintf(os.Stderr, "unable to remove index %v: %v\n", oldIndex.Str(), err) + } + } + cmd.global.Verbosef("done\n") return nil }