diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1564,7 +1564,10 @@ pass def lookup(self, key): - return scmutil.revsymbol(self, key).node() + node = scmutil.revsymbol(self, key).node() + if node is None: + raise error.RepoLookupError(_("unknown revision '%s'") % key) + return node def lookupbranch(self, key): if self.branchmap().hasbranch(key): diff --git a/tests/test-convert-hg-source.t b/tests/test-convert-hg-source.t --- a/tests/test-convert-hg-source.t +++ b/tests/test-convert-hg-source.t @@ -218,11 +218,10 @@ $ hg ci -Aqm 'the working copy is called ffffffffffff' $ cd .. -BROKEN: crashes when the "ffffffffffff" is encountered $ hg convert commit-references new-commit-references -q \ - > --config convert.hg.sourcename=yes 2>&1 | grep TypeError - TypeError: b2a_hex() argument 1 must be string or buffer, not None + > --config convert.hg.sourcename=yes $ cd new-commit-references $ hg log -T '{node|short} {desc}\n' + fe295c9e6bc6 the working copy is called ffffffffffff 642508659503 the previous commit was c2491f685436 c2491f685436 initial diff --git a/tests/test-pull.t b/tests/test-pull.t --- a/tests/test-pull.t +++ b/tests/test-pull.t @@ -76,10 +76,9 @@ [255] Test pull of working copy revision -BROKEN: should give a better error message $ hg pull -r 'ffffffffffff' pulling from http://foo@localhost:$HGPORT/ - abort: b2a_hex() argument 1 must be string or buffer, not None! + abort: unknown revision 'ffffffffffff'! [255] Issue622: hg init && hg pull -u URL doesn't checkout default branch