changeset 3870:e0bf44befd6e

evolve: exclude "identical" precursors from the precursors set I'm not sure it is the right thing to do, but it simply thing a lot for now. Otherwise, using 'precursors' to find rewind direction become too complex. This is going to give problematic result in case of prune. Since there are no other precursors to follow.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 17 Jun 2018 03:29:34 +0200
parents bbfbaf46f7b0
children 2e32a1ef0c60
files hgext3rd/evolve/__init__.py tests/test-rewind.t
diffstat 2 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/hgext3rd/evolve/__init__.py	Sun Jun 17 03:07:53 2018 +0200
+++ b/hgext3rd/evolve/__init__.py	Sun Jun 17 03:29:34 2018 +0200
@@ -533,7 +533,7 @@
 
 # XXX SOME MAJOR CLEAN UP TO DO HERE XXX
 
-def _precursors(repo, s):
+def _precursors(repo, s, includeidentical=False):
     """Precursor of a changeset"""
     cs = set()
     nm = repo.changelog.nodemap
@@ -541,6 +541,8 @@
     node = repo.changelog.node
     for r in s:
         for p in markerbysubj.get(node(r), ()):
+            if not includeidentical and p[2] & rewind.identicalflag:
+                continue
             pr = nm.get(p[0])
             if pr is not None:
                 cs.add(pr)
--- a/tests/test-rewind.t	Sun Jun 17 03:07:53 2018 +0200
+++ b/tests/test-rewind.t	Sun Jun 17 03:29:34 2018 +0200
@@ -752,7 +752,7 @@
 ```````
 
   $ echo 'default-date = 4 0' >> $HGRCPATH
-  $ hg rewind --hidden --to 'max(precursors(.))'
+  $ hg rewind --hidden --to 'precursors(.)'
   rewinded to 1 changesets
   (1 changesets obsoleted)
   working directory is now at 7b1440274cc3
@@ -800,7 +800,7 @@
 Automaticlaly rewinding the full stack
 --------------------------------------
 
-  $ hg rewind --hidden --to 'max(precursors(.))'
+  $ hg rewind --hidden --to 'precursors(.)'
   rewinded to 2 changesets
   (2 changesets obsoleted)
   working directory is now at 70892f498f29