cleanupnodes: drop special casing around prune markers (API)
authorBoris Feld <boris.feld@octobus.net>
Wed, 26 Sep 2018 21:28:21 +0200
changeset 39921 1857f50a9643
parent 39920 7198cdbbbde1
child 39922 a8ccd9523d40
cleanupnodes: drop special casing around prune markers (API) The `cleanupnodes` has logic to skip the creation of "prune" markers if the changeset is already obsolete. This feels strange and gets in the way of code changes to tracks folds. Now that callers no longer request such prune, we can drop this logic. In many cases, pruning through cleanupnodes should be replaced by internal phase usage.
mercurial/scmutil.py
tests/test-strip.t
--- a/mercurial/scmutil.py	Wed Sep 26 22:05:28 2018 +0200
+++ b/mercurial/scmutil.py	Wed Sep 26 21:28:21 2018 +0200
@@ -980,15 +980,13 @@
             # Also sort the node in topology order, that might be useful for
             # some obsstore logic.
             # NOTE: the filtering and sorting might belong to createmarkers.
-            isobs = unfi.obsstore.successors.__contains__
             torev = unfi.changelog.rev
             sortfunc = lambda ns: torev(ns[0][0])
             rels = []
             for ns, s in sorted(replacements.items(), key=sortfunc):
                 for n in ns:
-                    if s or not isobs(n):
-                        rel = (unfi[n], tuple(unfi[m] for m in s))
-                        rels.append(rel)
+                    rel = (unfi[n], tuple(unfi[m] for m in s))
+                    rels.append(rel)
             if rels:
                 obsolete.createmarkers(repo, rels, operation=operation,
                                        metadata=metadata)
--- a/tests/test-strip.t	Wed Sep 26 22:05:28 2018 +0200
+++ b/tests/test-strip.t	Wed Sep 26 21:28:21 2018 +0200
@@ -1246,7 +1246,7 @@
   >                            node(b'D'): [node(b'D2')],
   >                            node(b'G'): [node(b'G2')]}
   >                 scmutil.cleanupnodes(repo, mapping, b'replace')
-  >                 scmutil.cleanupnodes(repo, nodes(b'((B::)+I+Z)-D2'),
+  >                 scmutil.cleanupnodes(repo, nodes(b'((B::)+I+Z)-D2-obsolete()'),
   >                                      b'replace')
   > EOF
   $ hg testnodescleanup --config extensions.t=$TESTTMP/scmutilcleanup.py