localrepo: ignore tags to unknown nodes (
issue2750)
--- a/mercurial/localrepo.py Tue Apr 05 19:48:44 2011 +0200
+++ b/mercurial/localrepo.py Mon Apr 04 22:51:10 2011 +0300
@@ -362,7 +362,12 @@
tags = {}
for (name, (node, hist)) in alltags.iteritems():
if node != nullid:
- tags[encoding.tolocal(name)] = node
+ try:
+ # ignore tags to unknown nodes
+ self.changelog.lookup(node)
+ tags[encoding.tolocal(name)] = node
+ except error.LookupError:
+ pass
tags['tip'] = self.changelog.tip()
tagtypes = dict([(encoding.tolocal(name), value)
for (name, value) in tagtypes.iteritems()])