Patchwork [V2] log: fix behavior with empty repositories (issue3497)

login
register
mail settings
Submitter Alexander Plavin
Date April 18, 2013, 12:18 p.m.
Message ID <06365450e30516f2d04b.1366287483@debian-alexander.dolgopa>
Download mbox | patch
Permalink /patch/1408/
State Superseded, archived
Headers show

Comments

Alexander Plavin - April 18, 2013, 12:18 p.m.
# HG changeset patch
# User Alexander Plavin <me@aplavin.ru>
# Date 1366285717 -14400
#      Thu Apr 18 15:48:37 2013 +0400
# Node ID 06365450e30516f2d04bdfe98474cf6bdd9c0641
# Parent  99af3526d2f67a47d2287d3e6f93baa66e9b0714
log: fix behavior with empty repositories (issue3497)

Make output in this special case consistent with general case one.

Patch

diff -r 99af3526d2f6 -r 06365450e305 mercurial/cmdutil.py
--- a/mercurial/cmdutil.py	Wed Apr 17 17:27:39 2013 +0400
+++ b/mercurial/cmdutil.py	Thu Apr 18 15:48:37 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 99af3526d2f6 -r 06365450e305 mercurial/revset.py
--- a/mercurial/revset.py	Wed Apr 17 17:27:39 2013 +0400
+++ b/mercurial/revset.py	Thu Apr 18 15:48:37 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 99af3526d2f6 -r 06365450e305 tests/test-alias.t
--- a/tests/test-alias.t	Wed Apr 17 17:27:39 2013 +0400
+++ b/tests/test-alias.t	Thu Apr 18 15:48:37 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 99af3526d2f6 -r 06365450e305 tests/test-log.t
--- a/tests/test-log.t	Wed Apr 17 17:27:39 2013 +0400
+++ b/tests/test-log.t	Thu Apr 18 15:48:37 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