[PATCH 1 of 4 V3-Series-A] hidden: use both parents of working directory

pierre-yves.david at logilab.fr pierre-yves.david at logilab.fr
Tue Jan 8 12:16:56 CST 2013


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1357662660 -3600
# Node ID f54898526aadcf7d26f609d426d4fb6d284a2ac5
# Parent  e3504d7ff760ce0a41a4b63b54c3739d6e812afe
hidden: use both parents of working directory

If we are merging with and extinct revision, this extinct revision should not be
hidden.

diff --git a/mercurial/repoview.py b/mercurial/repoview.py
--- a/mercurial/repoview.py
+++ b/mercurial/repoview.py
@@ -16,11 +16,11 @@ def computehidden(repo):
 
     During most operation hidden should be filtered."""
     assert not repo.changelog.filteredrevs
     if repo.obsstore:
         ### hide extinct changeset that are not accessible by any mean
-        hiddenquery = 'extinct() - ::(. + bookmark())'
+        hiddenquery = 'extinct() - ::(parents() + bookmark())'
         return frozenset(repo.revs(hiddenquery))
     return frozenset()
 
 def computeunserved(repo):
     """compute the set of revision that should be filtered when used a server
diff --git a/tests/test-log.t b/tests/test-log.t
--- a/tests/test-log.t
+++ b/tests/test-log.t
@@ -1160,10 +1160,24 @@ enable obsolete to test hidden feature
   0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
   $ hg log --template='{rev}:{node}\n' --hidden
   1:a765632148dc55d38c35c4f247c618701886cb2f
   0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
 
+test that parent prevent a changeset to be hidden
+
+  $ hg up 1 -q
+  $ hg log --template='{rev}:{node}\n'
+  1:a765632148dc55d38c35c4f247c618701886cb2f
+  0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
+
+test that second parent prevent a changeset to be hidden too
+
+  $ hg debugsetparents 0 1 # nothing suitable to merge here
+  $ hg log --template='{rev}:{node}\n'
+  1:a765632148dc55d38c35c4f247c618701886cb2f
+  0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
+
 clear extensions configuration
   $ echo '[extensions]' >> $HGRCPATH
   $ echo "obs=!" >> $HGRCPATH
   $ cd ..
 


More information about the Mercurial-devel mailing list