Mercurial > public > mercurial-scm > evolve
changeset 6999:3f1cf6277153 mercurial-5.0
test-compat: merge mercurial-5.1 into mercurial-5.0
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Thu, 06 Feb 2025 12:16:58 +0100 |
parents | 31ae7478a70b (current diff) 31a5c07c6326 (diff) |
children | 3415ee1278dc 82e1411b92a3 |
files | tests/test-evolve-obshistory-lots-of-splits.t tests/test-evolve-obshistory-split.t tests/test-evolve-public-content-divergent-corner-cases.t |
diffstat | 18 files changed, 236 insertions(+), 73 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Tue Nov 26 17:17:57 2024 +0400 +++ b/.hgtags Thu Feb 06 12:16:58 2025 +0100 @@ -112,3 +112,4 @@ 2d2da4f7742a0da2c2fbd5a95c48937720eeafd4 11.1.3 ed7c98393e060210689f0b94d79e8b990403b6a9 11.1.4 6219898ee0ad2ebd1d75500ac9d1b02e5b539de2 11.1.5 +885e8a8414bde9a14dcefbd342a9704e8ace7649 11.1.6
--- a/CHANGELOG Tue Nov 26 17:17:57 2024 +0400 +++ b/CHANGELOG Thu Feb 06 12:16:58 2025 +0100 @@ -1,7 +1,15 @@ Changelog ========= -11.1.6 - in progress +11.1.7 - in progress +-------------------- + + * evolve: fix version check from 972d98ce3552 for hg 6.8 (issue6958) + + * obslog: also display patch for rebased changesets (requires Mercurial 5.6 + or newer for in-memory rebase support) + +11.1.6 -- 2024-11-27 -------------------- * evolve: unrelated parts of splits are no longer considered
--- a/contrib/merge-test-compat.sh Tue Nov 26 17:17:57 2024 +0400 +++ b/contrib/merge-test-compat.sh Thu Feb 06 12:16:58 2025 +0100 @@ -3,7 +3,7 @@ unset GREP_OPTIONS -compatbranches=$(hg branches --quiet | grep 'mercurial-' | grep -v ':' | sort -n --reverse) +compatbranches=$(HGRCPATH= hg branches --quiet | grep -E '^mercurial-' | sort -n --reverse) prev='stable' topic=${1:-'test-compat'} for branch in $compatbranches; do @@ -15,11 +15,15 @@ # are definitely unrelated to what we're doing. # In other words, if you want to test certain commits, assign them all to # one topic and provide that topic as the first argument to this script. - uptarget="first(max(branch('$branch') and topic('$topic')) or max(branch('$branch') and not topic()))" + uptarget="first(max(branch('re:^$branch') and topic('$topic')) or max(branch('re:^$branch') and not topic()))" hg up -r "$uptarget" hg topic "$topic" - mergetarget="first(max(branch('$prev') and topic('$topic')) or max(branch('$prev') and not topic()))" - hg merge -r "$mergetarget" - hg commit -m "test-compat: merge $prev into $branch" + mergetarget="first(max(branch('re:^$prev') and topic('$topic')) or max(branch('re:^$prev') and not topic()))" + if hg log -r "$mergetarget and ancestors(.)" -T 'already merged' | grep 'merge'; then + echo "not merging $prev into $branch as it is already merged" + else + hg merge -r "$mergetarget" + hg commit -m "test-compat: merge $prev into $branch" + fi prev=$branch done
--- a/debian/changelog Tue Nov 26 17:17:57 2024 +0400 +++ b/debian/changelog Thu Feb 06 12:16:58 2025 +0100 @@ -1,3 +1,9 @@ +mercurial-evolve (11.1.6-1) unstable; urgency=medium + + * new upstream release + + -- Anton Shestakov <av6@dwimlabs.net> Wed, 27 Nov 2024 16:35:08 +0400 + mercurial-evolve (11.1.5-1) unstable; urgency=medium * new upstream release
--- a/hgext3rd/evolve/compat.py Tue Nov 26 17:17:57 2024 +0400 +++ b/hgext3rd/evolve/compat.py Thu Feb 06 12:16:58 2025 +0100 @@ -40,6 +40,14 @@ except (AttributeError, ImportError): mergestate = mergemod.mergestate # pytype: disable=module-attr +try: + from mercurial import mergestate as mergestatemod + mergestatemod.memmergestate + hasmemmergestate = True +except (AttributeError, ImportError): + # hg <= 5.5 (19590b126764) + hasmemmergestate = False + from . import ( exthelper, ) @@ -494,6 +502,89 @@ context.overlayworkingctx.markcopied = fixedmarkcopied +# hg <= 6.9 (f071b18e1382) +# we detect a502f3f389b5 because it's close enough and touches the same code +def _detect_hit(code): + """ detect a502f3f389b5 by inspecting variables of getfile() + """ + return 'hit' in code.co_varnames[code.co_argcount:] +def _new_tomemctx(tomemctx): + """ diving into tomemctx() to find and inspect the nested getfile() + """ + return any( + _detect_hit(c) for c in tomemctx.__code__.co_consts + if util.safehasattr(c, 'co_varnames') + ) +if not _new_tomemctx(context.overlayworkingctx.tomemctx): + def fixed_tomemctx( + self, + text, + branch=None, + extra=None, + date=None, + parents=None, + user=None, + editor=None, + ): + """Converts this ``overlayworkingctx`` into a ``memctx`` ready to be + committed. + + ``text`` is the commit message. + ``parents`` (optional) are rev numbers. + """ + # Default parents to the wrapped context if not passed. + if parents is None: + parents = self.parents() + if len(parents) == 1: + parents = (parents[0], None) + + # ``parents`` is passed as rev numbers; convert to ``commitctxs``. + if parents[1] is None: + parents = (self._repo[parents[0]], None) + else: + parents = (self._repo[parents[0]], self._repo[parents[1]]) + + files = self.files() + + def getfile(repo, memctx, path): + hit = self._cache.get(path) + ### FIXED PART ### + if hit is None: + return self.filectx(path) + ### END FIXED PART ### + elif hit[b'exists']: + return context.memfilectx( + repo, + memctx, + path, + hit[b'data'], + b'l' in hit[b'flags'], + b'x' in hit[b'flags'], + hit[b'copied'], + ) + else: + # Returning None, but including the path in `files`, is + # necessary for memctx to register a deletion. + return None + + if branch is None: + branch = self._wrappedctx.branch() + + return context.memctx( + self._repo, + parents, + text, + files, + getfile, + date=date, + extra=extra, + user=user, + branch=branch, + editor=editor, + ) + + context.overlayworkingctx.tomemctx = fixed_tomemctx + # what we're actually targeting here is e079e001d536 # hg <= 5.0 (dc3fdd1b5af4) try:
--- a/hgext3rd/evolve/evolvecmd.py Tue Nov 26 17:17:57 2024 +0400 +++ b/hgext3rd/evolve/evolvecmd.py Thu Feb 06 12:16:58 2025 +0100 @@ -911,12 +911,8 @@ return commitmsg def use_in_memory_merge(repo): - try: - from mercurial import mergestate as mergestatemod - mergestatemod.memmergestate - except (AttributeError, ImportError): + if not compat.hasmemmergestate: # no in-memory evolve if Mercurial lacks the required code - # hg <= 5.5 (19590b126764) return False config_value = repo.ui.config(b'experimental', b'evolution.in-memory') if config_value == b'force':
--- a/hgext3rd/evolve/metadata.py Tue Nov 26 17:17:57 2024 +0400 +++ b/hgext3rd/evolve/metadata.py Thu Feb 06 12:16:58 2025 +0100 @@ -5,7 +5,7 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. -__version__ = b'11.1.6.dev0' +__version__ = b'11.1.7.dev0' testedwith = b'4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9' minimumhgversion = b'4.9' buglink = b'https://bz.mercurial-scm.org/'
--- a/hgext3rd/evolve/obscache.py Tue Nov 26 17:17:57 2024 +0400 +++ b/hgext3rd/evolve/obscache.py Thu Feb 06 12:16:58 2025 +0100 @@ -497,7 +497,8 @@ wrapped = lambda repo: _computeobsoleteset(orig, repo) obsolete.cachefuncs[b'obsolete'] = wrapped - if util.versiontuple(n=3) < (6, 8, 2): + version = tuple(i if i is not None else 0 for i in util.versiontuple(n=3)) + if version < (6, 8, 2): # e68fe567a780 was just before the 6.8.2 release # hg <= 6.8 (e68fe567a780) obsolete.cachefuncs[b'contentdivergent'] = _computecontentdivergentset
--- a/hgext3rd/evolve/obshistory.py Tue Nov 26 17:17:57 2024 +0400 +++ b/hgext3rd/evolve/obshistory.py Thu Feb 06 12:16:58 2025 +0100 @@ -11,6 +11,7 @@ from mercurial import ( commands, + context, error, graphmod, logcmdutil, @@ -29,6 +30,7 @@ from mercurial.i18n import _ from . import ( + compat, exthelper, ) @@ -306,27 +308,43 @@ ''' pass -def patchavailable(node, repo, candidates, successive=True): - """ Check if it's possible to get a diff between node and candidates. +class _NoPatchAvailable(Exception): + """small internal exception + + Carries the reason of why we cannot offer a patch to `displaymarkers`. + + XXX: we could raise a more semantic reason and let `displaymarkers` create + the message. + """ + def __init__(self, reason): + self.reason = reason + super(_NoPatchAvailable, self).__init__() + +def prepare_patch(repo, node, candidates, successive=True): + """ Prepare 2 contexts for a diff between node and one of its candidates. `candidates` contains nodes, which can be either successors (`successive` is True) or predecessors (`successive` is False) of `node`. + + Return a (from_ctx, to_ctx) tuple of contexts. One of these contexts could + be a result of in-memory rebase to align it with parents of the other + context. """ if node not in repo: - return False, b"context is not local" + raise _NoPatchAvailable(b"context is not local") if len(candidates) == 0: if successive: msg = b"no successors" else: msg = b"no predecessors" - return False, msg + raise _NoPatchAvailable(msg) elif len(candidates) > 1: if successive: msg = b"too many successors (%d)" else: msg = b"too many predecessors (%d)" - return False, msg % len(candidates) + raise _NoPatchAvailable(msg % len(candidates)) cand = candidates[0] @@ -335,16 +353,69 @@ msg = b"successor is unknown locally" else: msg = b"predecessor is unknown locally" - return False, msg + raise _NoPatchAvailable(msg) + + node_ctx = repo[node] + cand_ctx = repo[cand] # Check that both node and cand have the same parents - nodep1, nodep2 = repo[node].p1(), repo[node].p2() - candp1, candp2 = repo[cand].p1(), repo[cand].p2() + nodep1, nodep2 = node_ctx.p1(), node_ctx.p2() + candp1, candp2 = cand_ctx.p1(), cand_ctx.p2() + + if not compat.hasmemmergestate and (nodep1 != candp1 or nodep2 != candp2): + # we need hg 5.6+ for rebasing cand in-memory to show this diff + msg = b"Mercurial 5.6 or newer is required for in-memory rebase" + raise _NoPatchAvailable(msg) + + if nodep1 != candp1: + # XXX the case when both p1 and p2 changed could be better. + # + # For simplicity if both parents change, we currently only reflect the + # impact on "p1" changeset. This should be improved at some point, but + # this is good enough for now. + cand_ctx = _rebase_cand(repo, cand_ctx, candp1, nodep1) + elif nodep2 != candp2: + cand_ctx = _rebase_cand(repo, cand_ctx, candp2, nodep2) + if successive: + return (node_ctx, cand_ctx) + else: + return (cand_ctx, node_ctx) + + +def _rebase_cand(repo, ctx, old_base, new_base): + """return a view of ctx rebased in-memory from old_base to new_base - if nodep1 != candp1 or nodep2 != candp2: - return False, b"changesets rebased" - - return True, cand + This can be used to produce a patch in obslog even when changesets were + rebased. + """ + # XXX inspired by the diff.merge feature (mercurial.diffutil.diff_parent). + # We should move this logic to core. + base = context.overlayworkingctx(repo) + base.setbase(ctx) + configoverrides = { + (b'ui', b'forcemerge'): b'internal:merge3-lie-about-conflicts' + } + with repo.ui.configoverride(configoverrides, b'obslog-diff'): + # hg <= 5.8 (7a430116f639) + # this try-finally block can be replaced by ui.silent context manager + try: + repo.ui.pushbuffer() + compat._update( + repo, + new_base, + labels=[ + b'predecessor', + b'successor-parent', + b'predecessor-parent', + ], + force=True, + branchmerge=True, + wc=base, + ancestor=old_base, + ) + finally: + repo.ui.popbuffer() + return base.tomemctx(text=ctx.description()) def getmarkerdescriptionpatch(repo, basedesc, succdesc): # description are stored without final new line, @@ -677,18 +748,14 @@ # Patch display if includediff is True: - _patchavailable = patchavailable(node, repo, nodes, - successive=successive) - if _patchavailable[0] is True: - diffnode = _patchavailable[1] - - if successive: - actx = repo[node] - bctx = repo[diffnode] - else: - actx = repo[diffnode] - bctx = repo[node] + try: + actx, bctx = prepare_patch(repo, node, nodes, successive=successive) + assert actx is not None + assert bctx is not None + except _NoPatchAvailable as exc: + fm.data(nopatchreason=exc.reason) + else: # Description patch descriptionpatch = getmarkerdescriptionpatch(repo, actx.description(), @@ -717,7 +784,7 @@ matchfn = scmutil.matchall(repo) firstline = True linestart = True - for chunk, label in patch.diffui(repo, actx.node(), bctx.node(), + for chunk, label in patch.diffui(repo, actx, bctx, matchfn, opts=diffopts): if firstline: ui.write(b'\n') @@ -728,8 +795,6 @@ linestart = True ui.write(chunk, label=label) fm.data(patch=ui.popbuffer()) - else: - fm.data(nopatchreason=_patchavailable[1]) def _prepare_hunk(hunk): """Drop all information but the username and patch"""
--- a/hgext3rd/evolve/rewriteutil.py Tue Nov 26 17:17:57 2024 +0400 +++ b/hgext3rd/evolve/rewriteutil.py Thu Feb 06 12:16:58 2025 +0100 @@ -233,14 +233,6 @@ revs = sorted(revs) return repomarks, revs -try: - from mercurial import mergestate - mergestate.memmergestate - hasmemmergestate = True -except (ImportError, AttributeError): - # hg <= 5.5 (19590b126764) - hasmemmergestate = False - def rewrite(repo, old, head, newbases, commitopts): """Return (nodeid, created) where nodeid is the identifier of the changeset generated by the rewrite process, and created is True if @@ -251,7 +243,7 @@ # mergestate and use that. We don't want that to happen, so we'll require # users of old Mercurial versions to run `hg touch` etc without # mergestate. - if not hasmemmergestate: + if not compat.hasmemmergestate: ms = compat.mergestate.read(repo) mergeutil.checkunresolved(ms)
--- a/hgext3rd/topic/__init__.py Tue Nov 26 17:17:57 2024 +0400 +++ b/hgext3rd/topic/__init__.py Thu Feb 06 12:16:58 2025 +0100 @@ -238,7 +238,7 @@ b'log.topic': b'green_background', } -__version__ = b'1.1.6.dev0' +__version__ = b'1.1.7.dev0' testedwith = b'4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9' minimumhgversion = b'4.9'
--- a/tests/test-evolve-obshistory-amend-then-fold.t Tue Nov 26 17:17:57 2024 +0400 +++ b/tests/test-evolve-obshistory-amend-then-fold.t Thu Feb 06 12:16:58 2025 +0100 @@ -101,7 +101,7 @@ | x b7ea6d14e664 (3) B1 | folded(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 0dec01379d3b (2) B0 reworded(description) as b7ea6d14e664 using amend by test (Thu Jan 01 00:00:00 1970 +0000) @@ -154,7 +154,7 @@ | x b7ea6d14e664 (3) B1 | folded(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 0dec01379d3b (2) B0 reworded(description) as b7ea6d14e664 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
--- a/tests/test-evolve-obshistory-fold.t Tue Nov 26 17:17:57 2024 +0400 +++ b/tests/test-evolve-obshistory-fold.t Thu Feb 06 12:16:58 2025 +0100 @@ -93,7 +93,7 @@ |\ x | 0dec01379d3b (2) B0 / folded(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 471f378eab4c (1) A0 folded(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000) @@ -116,7 +116,7 @@ $ hg obslog --hidden 0dec01379d3b --patch --no-origin x 0dec01379d3b (2) B0 folded(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available, changesets rebased) + (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) Check that with all option, all changesets are shown $ hg obslog --hidden --all 0dec01379d3b --patch --no-origin @@ -124,7 +124,7 @@ |\ x | 0dec01379d3b (2) B0 / folded(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 471f378eab4c (1) A0 folded(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000) @@ -148,7 +148,7 @@ |\ x | 0dec01379d3b (2) B0 / folded(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 471f378eab4c (1) A0 folded(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
--- a/tests/test-evolve-obshistory-lots-of-splits.t Tue Nov 26 17:17:57 2024 +0400 +++ b/tests/test-evolve-obshistory-lots-of-splits.t Thu Feb 06 12:16:58 2025 +0100 @@ -180,7 +180,7 @@ $ hg obslog de7290d8b885 --hidden --all --patch o 1ae8bc733a14 (4) A0 | split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | | o 337fec4d2edc (2) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) @@ -203,11 +203,11 @@ | | @ c7f044602e9b (5) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | | o f257fde29c7a (3) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x de7290d8b885 (1) A0 @@ -255,7 +255,7 @@ $ hg obslog c7f044602e9b --patch @ c7f044602e9b (5) A0 | split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x de7290d8b885 (1) A0 @@ -351,7 +351,7 @@ $ hg obslog 2::5 --patch o 1ae8bc733a14 (4) A0 | split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | | o 337fec4d2edc (2) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) @@ -374,11 +374,11 @@ | | @ c7f044602e9b (5) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | | o f257fde29c7a (3) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x de7290d8b885 (1) A0 @@ -398,7 +398,7 @@ $ hg obslog 5 --all --patch o 1ae8bc733a14 (4) A0 | split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | | o 337fec4d2edc (2) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) @@ -421,11 +421,11 @@ | | @ c7f044602e9b (5) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | | o f257fde29c7a (3) A0 |/ split(parent, content) from de7290d8b885 using split by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x de7290d8b885 (1) A0
--- a/tests/test-evolve-obshistory-split.t Tue Nov 26 17:17:57 2024 +0400 +++ b/tests/test-evolve-obshistory-split.t Thu Feb 06 12:16:58 2025 +0100 @@ -177,7 +177,7 @@ | @ f257fde29c7a (3) A0 |/ split(parent, content) from 471597cad322 using split by test (Thu Jan 01 00:00:00 1970 +0000) | note: testing split - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 471597cad322 (1) A0 @@ -187,7 +187,7 @@ @ f257fde29c7a (3) A0 | split(parent, content) from 471597cad322 using split by test (Thu Jan 01 00:00:00 1970 +0000) | note: testing split - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 471597cad322 (1) A0 @@ -206,7 +206,7 @@ | @ f257fde29c7a (3) A0 |/ split(parent, content) from 471597cad322 using split by test (Thu Jan 01 00:00:00 1970 +0000) | note: testing split - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 471597cad322 (1) A0 @@ -246,7 +246,7 @@ | @ f257fde29c7a (3) A0 |/ split(parent, content) from 471597cad322 using split by test (Thu Jan 01 00:00:00 1970 +0000) | note: testing split - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 471597cad322 (1) A0
--- a/tests/test-evolve-phase-divergence.t Tue Nov 26 17:17:57 2024 +0400 +++ b/tests/test-evolve-phase-divergence.t Thu Feb 06 12:16:58 2025 +0100 @@ -1832,7 +1832,7 @@ $ hg obslog --patch @ 9eebcb77a7e2 (3) phase-divergent update to 3074c7249d20: | rewritten(description, parent, content) from 599454370881 using evolve by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 599454370881 (2) E2 | rewritten(description, content) from 3074c7249d20 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
--- a/tests/test-evolve-public-content-divergent-corner-cases.t Tue Nov 26 17:17:57 2024 +0400 +++ b/tests/test-evolve-public-content-divergent-corner-cases.t Thu Feb 06 12:16:58 2025 +0100 @@ -382,7 +382,7 @@ | | * e568fd1029bb (4) added c e |/ rewritten(description, parent, content) from 9150fe93bec6 using prune by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available, changesets rebased) + | (No patch available, Mercurial 5.6 or newer is required for in-memory rebase) | x 9150fe93bec6 (3) added d
--- a/tests/test-stack-split-s0.t Tue Nov 26 17:17:57 2024 +0400 +++ b/tests/test-stack-split-s0.t Thu Feb 06 12:16:58 2025 +0100 @@ -44,8 +44,7 @@ created new head (consider using topic for lightweight branches. See 'hg help topic') - $ hg --config extensions.evolve= prune --split --rev 'desc(A)' \ - > --successor 'desc(X)' --successor 'desc(Y)' + $ hg prune --split --rev 'desc(A)' --successor 'desc(X)' --successor 'desc(Y)' 1 changesets pruned 3 new orphan changesets