diff options
author | Jeremy Stribling <strib@alum.mit.edu> | 2017-11-29 14:52:01 -0800 |
---|---|---|
committer | Jeremy Stribling <strib@alum.mit.edu> | 2017-11-29 16:04:09 -0800 |
commit | 88acc31c76a3033a4d02e0d6cc751c74b9aeeea5 (patch) | |
tree | a2ae4d5027f28f26e46f2ae0e8c5a74ab37eaee4 /repository.go | |
parent | 4c1569511db5e1d26e42e9cd8dadb9e65ccafb20 (diff) | |
download | go-git-88acc31c76a3033a4d02e0d6cc751c74b9aeeea5.tar.gz |
repository: add tests for pruning and object re-packing
Also, object re-packing should clean up any loose objects that were
packed.
Diffstat (limited to 'repository.go')
-rw-r--r-- | repository.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/repository.go b/repository.go index d7cca89..7cdc0d5 100644 --- a/repository.go +++ b/repository.go @@ -1088,5 +1088,22 @@ func (r *Repository) createNewObjectPack(cfg *RepackConfig) (h plumbing.Hash, er if err != nil { return h, err } + + // Delete the packed, loose objects. + if los, ok := r.Storer.(storer.LooseObjectStorer); ok { + err = los.ForEachObjectHash(func(hash plumbing.Hash) error { + if ow.isSeen(hash) { + err := los.DeleteLooseObject(hash) + if err != nil { + return err + } + } + return nil + }) + if err != nil { + return h, err + } + } + return h, err } |