Mercurial > hg > mercurial-source
changeset 26242:3b1fc40626d8
identify: avoid a crash when given '-r wdir()'
The crash was 'NoneType is not subscriptable' in hexfunc(ctx.node()), because
the node for wdir() is None. This can be avoided simply by detecting 'wdir()'
and taking the existing path for no given revision.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 28 Jun 2015 18:39:58 -0400 |
parents | 125cedeebae8 |
children | 0f894d2203c8 |
files | mercurial/commands.py tests/test-tags.t |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -4064,7 +4064,9 @@ if bm: output.append(bm) else: - if not rev: + ctx = scmutil.revsingle(repo, rev, None) + + if ctx.rev() is None: ctx = repo[None] parents = ctx.parents() changed = "" @@ -4079,7 +4081,6 @@ output.append("%s%s" % ('+'.join([str(p.rev()) for p in parents]), changed)) else: - ctx = scmutil.revsingle(repo, rev) if default or id: output = [hexfunc(ctx.node())] if num:
--- a/tests/test-tags.t +++ b/tests/test-tags.t @@ -47,6 +47,8 @@ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg identify acb14030fe0a tip + $ hg identify -r 'wdir()' + acb14030fe0a tip $ cacheexists tag cache exists No fnodes cache because .hgtags file doesn't exist @@ -174,6 +176,8 @@ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg id acb14030fe0a+ first + $ hg id -r 'wdir()' + acb14030fe0a+ first $ hg -v id acb14030fe0a+ first $ hg status