Skip to content

Commit

Permalink
midx: auto-remove midx files that refer to missing .idx files.
Browse files Browse the repository at this point in the history
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 <apenwarr@gmail.com>
  • Loading branch information
apenwarr committed Dec 1, 2010
1 parent 9665d20 commit 650abd5
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion lib/bup/git.py
Expand Up @@ -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:
Expand Down

0 comments on commit 650abd5

Please sign in to comment.