diff -r 649ed23e4661 -r 65dccc4555c2 mercurial/commands.py --- a/mercurial/commands.py Sat Jun 04 19:21:13 2005 -0800 +++ b/mercurial/commands.py Sat Jun 04 19:35:08 2005 -0800 @@ -421,7 +421,17 @@ """list repository tags""" repo.lookup(0) # prime the cache i = repo.tags.items() - i.sort() + n = [] + for e in i: + try: + l = repo.changelog.rev(e[1]) + except KeyError: + l = -2 + n.append((l, e)) + + n.sort() + n.reverse() + i = [ e[1] for e in n ] for k, n in i: try: r = repo.changelog.rev(n)