log: fix --follow null parent not to include revision 0
authorYuya Nishihara <yuya@tcha.org>
Fri, 06 Feb 2015 21:53:39 +0900
changeset 24064 c260887cdbcd
parent 24063 c98fa0ca4678
child 24065 d8837ad682dd
log: fix --follow null parent not to include revision 0 If p1 is null, ':.' is translated as '0:null'. But rangeset can't handle null, only revision 0 was visible. Because 'null' should not be listed implicitly, "log --follow" (without -r) should be empty if p1 is null. Test of "hg grep -f" is added for cmdutil.walkchangerevs().
mercurial/cmdutil.py
tests/test-glog.t
tests/test-grep.t
tests/test-log.t
--- a/mercurial/cmdutil.py	Fri Feb 06 00:22:20 2015 +0900
+++ b/mercurial/cmdutil.py	Fri Feb 06 21:53:39 2015 +0900
@@ -1821,6 +1821,8 @@
     follow = opts.get('follow') or opts.get('follow_first')
     if opts.get('rev'):
         revs = scmutil.revrange(repo, opts['rev'])
+    elif follow and repo.dirstate.p1() == nullid:
+        revs = revset.baseset()
     elif follow:
         revs = repo.revs('reverse(:.)')
     else:
--- a/tests/test-glog.t	Fri Feb 06 00:22:20 2015 +0900
+++ b/tests/test-glog.t	Fri Feb 06 21:53:39 2015 +0900
@@ -1767,6 +1767,13 @@
   nodetag 1
   nodetag 0
 
+Test --follow null parent
+
+  $ hg up -q null
+  $ testlog -f
+  []
+  []
+
 Test --follow-first
 
   $ hg up -q 3
--- a/tests/test-grep.t	Fri Feb 06 00:22:20 2015 +0900
+++ b/tests/test-grep.t	Fri Feb 06 21:53:39 2015 +0900
@@ -82,6 +82,10 @@
   port:1:2:+:eggs:export
   port:0:1:+:spam:import
 
+  $ hg up -q null
+  $ hg grep -f port
+  [1]
+
   $ cd ..
   $ hg init t2
   $ cd t2
--- a/tests/test-log.t	Fri Feb 06 00:22:20 2015 +0900
+++ b/tests/test-log.t	Fri Feb 06 21:53:39 2015 +0900
@@ -672,10 +672,17 @@
   
 
 
+log -f with null parent
+
+  $ hg up -C null
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ hg log -f
+
+
 log -r .  with two parents
 
   $ hg up -C 3
-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge tip
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)