# HG changeset patch # User Alexander Plavin # Date 1366144194 -14400 # Node ID c1af1fb314bc96caf58e1dd6031ae3570008af6f # Parent 7373be706f02a9797d533cd24552f8895a894c62 log: fix behavior with empty repositories (issue3497) Make output in this special case consistent with general case one. diff -r 7373be706f02 -r c1af1fb314bc mercurial/cmdutil.py --- a/mercurial/cmdutil.py Tue Apr 16 13:22:29 2013 -0500 +++ b/mercurial/cmdutil.py Wed Apr 17 00:29:54 2013 +0400 @@ -1022,8 +1022,6 @@ follow = opts.get('follow') or opts.get('follow_first') - if not len(repo): - return [] if opts.get('rev'): revs = scmutil.revrange(repo, opts.get('rev')) elif follow: diff -r 7373be706f02 -r c1af1fb314bc mercurial/revlog.py --- a/mercurial/revlog.py Tue Apr 16 13:22:29 2013 -0500 +++ b/mercurial/revlog.py Wed Apr 17 00:29:54 2013 +0400 @@ -771,6 +771,10 @@ nl = [n for n in nl if hex(n).startswith(id)] if len(nl) > 0: if len(nl) == 1: + if nl[0] == nullid: + # dummy null revision always exists, + # it shouldn't be returned here + return None self._pcache[id] = nl[0] return nl[0] raise LookupError(id, self.indexfile, diff -r 7373be706f02 -r c1af1fb314bc mercurial/revset.py --- a/mercurial/revset.py Tue Apr 16 13:22:29 2013 -0500 +++ b/mercurial/revset.py Wed Apr 17 00:29:54 2013 +0400 @@ -238,12 +238,10 @@ return [x for x in r if x in s] def dagrange(repo, subset, x, y): - if subset: - r = list(repo) - xs = _revsbetween(repo, getset(repo, r, x), getset(repo, r, y)) - s = set(subset) - return [r for r in xs if r in s] - return [] + r = list(repo) + xs = _revsbetween(repo, getset(repo, r, x), getset(repo, r, y)) + s = set(subset) + return [r for r in xs if r in s] def andset(repo, subset, x, y): return getset(repo, getset(repo, subset, x), y) diff -r 7373be706f02 -r c1af1fb314bc tests/test-alias.t --- a/tests/test-alias.t Tue Apr 16 13:22:29 2013 -0500 +++ b/tests/test-alias.t Wed Apr 17 00:29:54 2013 +0400 @@ -267,10 +267,13 @@ $ hg init sub $ cd sub $ hg count 'branch(default)' + abort: unknown revision 'default'! 0 $ hg -v count 'branch(default)' + abort: unknown revision 'default'! 0 $ hg -R .. count 'branch(default)' + abort: unknown revision 'default'! 0 $ hg --cwd .. count 'branch(default)' 2 diff -r 7373be706f02 -r c1af1fb314bc tests/test-glog.t --- a/tests/test-glog.t Tue Apr 16 13:22:29 2013 -0500 +++ b/tests/test-glog.t Wed Apr 17 00:29:54 2013 +0400 @@ -1542,6 +1542,7 @@ $ testlog --follow [] [] + abort: unknown revision '0'! $ echo a > a $ echo aa > aa $ echo f > f diff -r 7373be706f02 -r c1af1fb314bc tests/test-log.t --- a/tests/test-log.t Tue Apr 16 13:22:29 2013 -0500 +++ b/tests/test-log.t Wed Apr 17 00:29:54 2013 +0400 @@ -1,3 +1,20 @@ +Log on empty repository: checking consistency + + $ hg init empty + $ cd empty + $ hg log + $ hg log -r 1 + abort: unknown revision '1'! + [255] + $ hg log -r -1:0 + abort: unknown revision '-1'! + [255] + $ hg log -r 'branch(name)' + abort: unknown revision 'name'! + [255] + $ hg log -r null -q + -1:000000000000 + The g is crafted to have 2 filelog topological heads in a linear changeset graph