dispatch: tolerate non-standard version strings in tuplever() (
issue3470)
When developing, we may see non-standard version strings of the form
5d64306f39bb+
20120525
which caused tuplever() to raise
ValueError: invalid literal for int() with base 10: '
5d64306f39bb'
and shadowing the real traceback.
--- a/mercurial/dispatch.py Thu May 24 13:05:06 2012 +0200
+++ b/mercurial/dispatch.py Fri May 25 14:24:07 2012 +0200
@@ -252,8 +252,10 @@
return -1
def tuplever(v):
- return tuple([int(i) for i in v.split('.')])
-
+ try:
+ return tuple([int(i) for i in v.split('.')])
+ except ValueError:
+ return tuple()
def aliasargs(fn, givenargs):
args = getattr(fn, 'args', [])