rendered paste bodydiff --git a/mercurial/tags.py b/mercurial/tags.py--- a/mercurial/tags.py+++ b/mercurial/tags.py@@ -176,16 +176,22 @@ cacheheads = [] # list of headnode cachefnode = {} # map headnode to filenode if cachefile:- for line in cachelines:- if line == "\n":- break- line = line.rstrip().split()- cacherevs.append(int(line[0]))- headnode = bin(line[1])- cacheheads.append(headnode)- if len(line) == 3:- fnode = bin(line[2])- cachefnode[headnode] = fnode+ try:+ for line in cachelines:+ if line == "\n":+ break+ line = line.rstrip().split()+ cacherevs.append(int(line[0]))+ headnode = bin(line[1])+ cacheheads.append(headnode)+ if len(line) == 3:+ fnode = bin(line[2])+ cachefnode[headnode] = fnode+ except ValueError:+ # corruption of tags.cache, just recompute it+ cacheheads = []+ cacherevs = []+ cachefnode = {} tipnode = repo.changelog.tip() tiprev = len(repo.changelog) - 1