From: Johannes Berg Date: Thu, 25 Nov 2021 10:12:27 +0000 (+0200) Subject: git: PackIdxList: close extra packs when refreshing X-Git-Url: https://arthur.ath.cx/gitweb/?a=commitdiff_plain;h=22e2df2ce1c28e900bc06a9bac4ffd17019c22d6;p=bup.git git: PackIdxList: close extra packs when refreshing Signed-off-by: Johannes Berg Reviewed-by: Rob Browning [rlb@defaultvalue.org: defer list/sort until after closes] Signed-off-by: Rob Browning Tested-by: Rob Browning --- diff --git a/lib/bup/git.py b/lib/bup/git.py index 3608f18..73a50b8 100644 --- a/lib/bup/git.py +++ b/lib/bup/git.py @@ -682,8 +682,13 @@ class PackIdxList: continue d[full] = ix bfull = os.path.join(self.dir, b'bup.bloom') - self.packs = list(set(d.values())) - self.packs.sort(reverse=True, key=lambda x: len(x)) + new_packs = set(d.values()) + for p in self.packs: + if not p in new_packs: + p.close() + new_packs = list(new_packs) + new_packs.sort(reverse=True, key=lambda x: len(x)) + self.packs = new_packs if self.bloom is None and os.path.exists(bfull): self.bloom = bloom.ShaBloom(bfull) try: