From 650abd5c20d1c178778d9a4374e9561f1e06d600 Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Wed, 1 Dec 2010 02:44:18 -0800 Subject: [PATCH] midx: auto-remove midx files that refer to missing .idx files. Normally an .idx file doesn't ever disappear, but it could happen if you run 'git gc' on your repository. Which I thought would be a terrible idea, but apparently it can actually save a lot of space for some people (although it takes a pretty long time to run). And when that happens, all your .idx files move around. So let's be polite when that happens. We'll print a warning the first time, but then shut up after that since the flawed midx file will just go away. Reported by Peter Rabbitson. Signed-off-by: Avery Pennarun --- lib/bup/git.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/bup/git.py b/lib/bup/git.py index 6a5135470..fc03fe6d9 100644 --- a/lib/bup/git.py +++ b/lib/bup/git.py @@ -399,7 +399,10 @@ def refresh(self, skip_midx = False): log(('warning: index %s missing\n' + ' used by %s\n') % (n, mxf)) broken += 1 - if not broken: + if broken: + del mx + unlink(full) + else: midxl.append(mx) midxl.sort(lambda x,y: -cmp(len(x),len(y))) for ix in midxl: