# HG changeset patch # User Boris Feld # Date 1537990101 -7200 # Node ID 1857f50a964386063be82be1a0b3a92f242fedd7 # Parent 7198cdbbbde194d1d32a3de888151e0a939a581e 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. diff -r 7198cdbbbde1 -r 1857f50a9643 mercurial/scmutil.py --- 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) diff -r 7198cdbbbde1 -r 1857f50a9643 tests/test-strip.t --- 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