log: remove any ancestors of nullrev (issue3772) stable
authorSean Farley <sean.michael.farley@gmail.com>
Wed, 23 Jan 2013 00:12:52 -0600
branchstable
changeset 18466 ac0c12123743
parent 18465 3aa8b4b36b64
child 18467 e441657b372b
log: remove any ancestors of nullrev (issue3772) For the special case, ":null" we remove the implied revision 0 since that wouldn't make any sense here. A test case is added to make sure only nullrev is shown.
mercurial/scmutil.py
tests/test-log.t
--- a/mercurial/scmutil.py	Tue Jan 22 18:40:23 2013 -0600
+++ b/mercurial/scmutil.py	Wed Jan 23 00:12:52 2013 -0600
@@ -6,6 +6,7 @@
 # GNU General Public License version 2 or any later version.
 
 from i18n import _
+from mercurial.node import nullrev
 import util, error, osutil, revset, similar, encoding, phases
 import match as matchmod
 import os, errno, re, stat, sys, glob
@@ -647,6 +648,8 @@
                 start, end = spec.split(_revrangesep, 1)
                 start = revfix(repo, start, 0)
                 end = revfix(repo, end, len(repo) - 1)
+                if end == nullrev and start <= 0:
+                    start = nullrev
                 rangeiter = repo.changelog.revs(start, end)
                 if not seen and not l:
                     # by far the most common case: revs = ["-1:0"]
--- a/tests/test-log.t	Tue Jan 22 18:40:23 2013 -0600
+++ b/tests/test-log.t	Wed Jan 23 00:12:52 2013 -0600
@@ -1296,4 +1296,13 @@
   changeset:   0:65624cd9070a
   $ hg log -l1 .d6/f1 | grep changeset
   changeset:   0:65624cd9070a
+
+issue3772: hg log -r :null showing revision 0 as well
+
+  $ hg log -r :null
+  changeset:   -1:000000000000
+  user:        
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  
+
   $ cd ..