# HG changeset patch # User Martin von Zweigbergk # Date 1551313995 28800 # Node ID c91321e86071be86f406f200e7b09432e79752d7 # Parent a008e0af892e075d9e469c6bac87a29886ecd2cb absorb: use scmutil.cleanupnodes() also when obsmarkers are disabled A side-effect of this is the new warning in the test case, but the warning is valid, so I don't think that's a problem. Differential Revision: https://phab.mercurial-scm.org/D6035 diff -r a008e0af892e -r c91321e86071 hgext/absorb.py --- a/hgext/absorb.py Wed Feb 27 16:15:10 2019 -0800 +++ b/hgext/absorb.py Wed Feb 27 16:33:15 2019 -0800 @@ -50,7 +50,6 @@ phases, pycompat, registrar, - repair, scmutil, util, ) @@ -690,9 +689,9 @@ if self.repo['.'].node() in self.replacemap: self._moveworkingdirectoryparent() if self._useobsolete: - self._obsoleteoldcommits() + self._cleanupoldcommits() if not self._useobsolete: # strip must be outside transactions - self._stripoldcommits() + self._cleanupoldcommits() return self.finalnode def printchunkstats(self): @@ -859,22 +858,12 @@ """() -> bool""" return obsolete.isenabled(self.repo, obsolete.createmarkersopt) - def _obsoleteoldcommits(self): + def _cleanupoldcommits(self): replacements = {k: ([v] if v is not None else []) for k, v in self.replacemap.iteritems()} if replacements: scmutil.cleanupnodes(self.repo, replacements, operation='absorb') - def _stripoldcommits(self): - nodelist = self.replacemap.keys() - # make sure we don't strip innocent children - revs = self.repo.revs('%ln - (::(heads(%ln::)-%ln))', nodelist, - nodelist, nodelist) - tonode = self.repo.changelog.node - nodelist = [tonode(r) for r in revs] - if nodelist: - repair.strip(self.repo.ui, self.repo, nodelist) - def _parsechunk(hunk): """(crecord.uihunk or patch.recordhunk) -> (path, (a1, a2, [bline]))""" if type(hunk) not in (crecord.uihunk, patch.recordhunk): diff -r a008e0af892e -r c91321e86071 tests/test-absorb-strip.t --- a/tests/test-absorb-strip.t Wed Feb 27 16:15:10 2019 -0800 +++ b/tests/test-absorb-strip.t Wed Feb 27 16:33:15 2019 -0800 @@ -23,6 +23,7 @@ $ echo 1 >> B $ echo 2 >> D $ hg absorb -a + warning: orphaned descendants detected, not stripping 112478962961, 26805aba1e60 saved backup bundle to * (glob) 2 of 2 chunk(s) applied