diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -94,6 +94,7 @@ revsetlang, scmutil, smartset, + strip as stripmod, subrepoutil, util, vfs as vfsmod, @@ -130,20 +131,7 @@ default=False, ) -# force load strip extension formerly included in mq and import some utility -try: - stripext = extensions.find('strip') -except KeyError: - # note: load is lazy so we could avoid the try-except, - # but I (marmoute) prefer this explicit code. - class dummyui(object): - def debug(self, msg): - pass - def log(self, event, msgfmt, *msgargs, **opts): - pass - stripext = extensions.load(dummyui(), 'strip', '') - -strip = stripext.strip +strip = stripmod.strip def checksubstate(repo, baserev=None): '''return list of subrepos at a different revision than substate. diff --git a/hgext/strip.py b/hgext/strip.py --- a/hgext/strip.py +++ b/hgext/strip.py @@ -1,107 +1,42 @@ """strip changesets and their descendants from history -This extension allows you to strip changesets and all their descendants from the -repository. See the command help for details. +strip extension has been renamed to debugstrip and moved to core. However, +this extension is to preserve the old `strip` name forusers that are used +to that. """ + from __future__ import absolute_import - from mercurial.i18n import _ +from mercurial.node import nullid from mercurial import ( - bookmarks as bookmarksmod, - cmdutil, error, - hg, - lock as lockmod, - merge, - node as nodemod, + merge as mergemod, pycompat, registrar, - repair, scmutil, - util, + strip as stripmod, ) -nullid = nodemod.nullid -release = lockmod.release cmdtable = {} command = registrar.command(cmdtable) -# Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for -# extensions which SHIP WITH MERCURIAL. Non-mainline extensions should -# be specifying the version(s) of Mercurial they are tested with, or -# leave the attribute unspecified. -testedwith = 'ships-with-hg-core' - -def checklocalchanges(repo, force=False): - s = repo.status() - if not force: - cmdutil.checkunfinished(repo) - cmdutil.bailifchanged(repo) - else: - cmdutil.checkunfinished(repo, skipmerge=True) - return s - -def _findupdatetarget(repo, nodes): - unode, p2 = repo.changelog.parents(nodes[0]) - currentbranch = repo[None].branch() - - if (util.safehasattr(repo, 'mq') and p2 != nullid - and p2 in [x.node for x in repo.mq.applied]): - unode = p2 - elif currentbranch != repo[unode].branch(): - pwdir = 'parents(wdir())' - revset = 'max(((parents(%ln::%r) + %r) - %ln::%r) and branch(%s))' - branchtarget = repo.revs(revset, nodes, pwdir, pwdir, nodes, pwdir, - currentbranch) - if branchtarget: - cl = repo.changelog - unode = cl.node(branchtarget.first()) - - return unode - -def strip(ui, repo, revs, update=True, backup=True, force=None, bookmarks=None, - soft=False): - with repo.wlock(), repo.lock(): - - if update: - checklocalchanges(repo, force=force) - urev = _findupdatetarget(repo, revs) - hg.clean(repo, urev) - repo.dirstate.write(repo.currenttransaction()) - - if soft: - repair.softstrip(ui, repo, revs, backup) - else: - repair.strip(ui, repo, revs, backup) - - repomarks = repo._bookmarks - if bookmarks: - with repo.transaction('strip') as tr: - if repo._activebookmark in bookmarks: - bookmarksmod.deactivate(repo) - repomarks.applychanges(repo, tr, [(b, None) for b in bookmarks]) - for bookmark in sorted(bookmarks): - ui.write(_("bookmark '%s' deleted\n") % bookmark) @command("strip", - [ - ('r', 'rev', [], _('strip specified revision (optional, ' - 'can specify revisions without this ' - 'option)'), _('REV')), - ('f', 'force', None, _('force removal of changesets, discard ' - 'uncommitted changes (no backup)')), - ('', 'no-backup', None, _('do not save backup bundle')), - ('', 'nobackup', None, _('do not save backup bundle ' - '(DEPRECATED)')), - ('n', '', None, _('ignored (DEPRECATED)')), - ('k', 'keep', None, _("do not modify working directory during " - "strip")), - ('B', 'bookmark', [], _("remove revs only reachable from given" - " bookmark"), _('BOOKMARK')), - ('', 'soft', None, - _("simply drop changesets from visible history (EXPERIMENTAL)")), - ], - _('hg strip [-k] [-f] [-B bookmark] [-r] REV...'), - helpcategory=command.CATEGORY_MAINTENANCE) + [ + ('r', 'rev', [], _('strip specified revision (optional, can specify ' + 'revisions without this option)'), _('REV')), + ('f', 'force', None, _('force removal of changesets, discard uncommitted' + ' changes (no backup)')), + ('', 'no-backup', None, _('do not save backup bundle')), + ('', 'nobackup', None, _('do not save backup bundle (DEPRECATED)')), + ('n', '', None, _('ignored (DEPRECATED)')), + ('k', 'keep', None, _("do not modify working directory during strip")), + ('B', 'bookmark', [], _("remove revs only reachable from given bookmark"), + _('BOOKMARK')), + ('', 'soft', None, + _("simply drop changesets from visible history (EXPERIMENTAL)")), + ], + _('hg strip [-k] [-f] [-B bookmark] [-r] REV...'), + helpcategory=command.CATEGORY_MAINTENANCE) def stripcmd(ui, repo, *revs, **opts): """strip changesets and all their descendants from the repository @@ -198,7 +133,7 @@ revs = sorted(rootnodes) if update and opts.get('keep'): - urev = _findupdatetarget(repo, revs) + urev = stripmod.findupdatetarget(repo, revs) uctx = repo[urev] # only reset the dirstate for files that would actually change @@ -218,13 +153,13 @@ repo.dirstate.write(repo.currenttransaction()) # clear resolve state - merge.mergestate.clean(repo, repo['.'].node()) + mergemod.mergestate.clean(repo, repo['.'].node()) update = False - strip(ui, repo, revs, backup=backup, update=update, - force=opts.get('force'), bookmarks=bookmarks, - soft=opts['soft']) + stripmod.strip(ui, repo, revs, backup=backup, update=update, + force=opts.get('force'), bookmarks=bookmarks, + soft=opts['soft']) return 0 diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py --- a/mercurial/debugcommands.py +++ b/mercurial/debugcommands.py @@ -70,6 +70,7 @@ sshpeer, sslutil, streamclone, + strip as stripmod, templater, treediscovery, upgrade, @@ -2726,6 +2727,150 @@ finally: s.close() +@command("debugstrip", + [ + ('r', 'rev', [], _('strip specified revision (optional, can specify ' + 'revisions without this option)'), _('REV')), + ('f', 'force', None, _('force removal of changesets, discard uncommitted' + ' changes (no backup)')), + ('', 'no-backup', None, _('do not save backup bundle')), + ('', 'nobackup', None, _('do not save backup bundle (DEPRECATED)')), + ('n', '', None, _('ignored (DEPRECATED)')), + ('k', 'keep', None, _("do not modify working directory during strip")), + ('B', 'bookmark', [], _("remove revs only reachable from given bookmark"), + _('BOOKMARK')), + ('', 'soft', None, + _("simply drop changesets from visible history (EXPERIMENTAL)")), + ], + _('hg strip [-k] [-f] [-B bookmark] [-r] REV...'), + helpcategory=command.CATEGORY_MAINTENANCE) +def debugstrip(ui, repo, *revs, **opts): + """strip changesets and all their descendants from the repository + + The strip command removes the specified changesets and all their + descendants. If the working directory has uncommitted changes, the + operation is aborted unless the --force flag is supplied, in which + case changes will be discarded. + + If a parent of the working directory is stripped, then the working + directory will automatically be updated to the most recent + available ancestor of the stripped parent after the operation + completes. + + Any stripped changesets are stored in ``.hg/strip-backup`` as a + bundle (see :hg:`help bundle` and :hg:`help unbundle`). They can + be restored by running :hg:`unbundle .hg/strip-backup/BUNDLE`, + where BUNDLE is the bundle file created by the strip. Note that + the local revision numbers will in general be different after the + restore. + + Use the --no-backup option to discard the backup bundle once the + operation completes. + + Strip is not a history-rewriting operation and can be used on + changesets in the public phase. But if the stripped changesets have + been pushed to a remote repository you will likely pull them again. + + Return 0 on success. + """ + opts = pycompat.byteskwargs(opts) + backup = True + if opts.get('no_backup') or opts.get('nobackup'): + backup = False + + cl = repo.changelog + revs = list(revs) + opts.get('rev') + revs = set(scmutil.revrange(repo, revs)) + + with repo.wlock(): + bookmarks = set(opts.get('bookmark')) + if bookmarks: + repomarks = repo._bookmarks + if not bookmarks.issubset(repomarks): + raise error.Abort(_("bookmark '%s' not found") % + ','.join(sorted(bookmarks - set(repomarks.keys())))) + + # If the requested bookmark is not the only one pointing to a + # a revision we have to only delete the bookmark and not strip + # anything. revsets cannot detect that case. + nodetobookmarks = {} + for mark, node in repomarks.iteritems(): + nodetobookmarks.setdefault(node, []).append(mark) + for marks in nodetobookmarks.values(): + if bookmarks.issuperset(marks): + rsrevs = scmutil.bookmarkrevs(repo, marks[0]) + revs.update(set(rsrevs)) + if not revs: + with repo.lock(), repo.transaction('bookmark') as tr: + bmchanges = [(b, None) for b in bookmarks] + repomarks.applychanges(repo, tr, bmchanges) + for bookmark in sorted(bookmarks): + ui.write(_("bookmark '%s' deleted\n") % bookmark) + + if not revs: + raise error.Abort(_('empty revision set')) + + descendants = set(cl.descendants(revs)) + strippedrevs = revs.union(descendants) + roots = revs.difference(descendants) + + # if one of the wdir parent is stripped we'll need + # to update away to an earlier revision + update = any(p != nullid and cl.rev(p) in strippedrevs + for p in repo.dirstate.parents()) + + rootnodes = set(cl.node(r) for r in roots) + + q = getattr(repo, 'mq', None) + if q is not None and q.applied: + # refresh queue state if we're about to strip + # applied patches + if cl.rev(repo.lookup('qtip')) in strippedrevs: + q.applieddirty = True + start = 0 + end = len(q.applied) + for i, statusentry in enumerate(q.applied): + if statusentry.node in rootnodes: + # if one of the stripped roots is an applied + # patch, only part of the queue is stripped + start = i + break + del q.applied[start:end] + q.savedirty() + + revs = sorted(rootnodes) + if update and opts.get('keep'): + urev = stripmod.findupdatetarget(repo, revs) + uctx = repo[urev] + + # only reset the dirstate for files that would actually change + # between the working context and uctx + descendantrevs = repo.revs(b"%d::.", uctx.rev()) + changedfiles = [] + for rev in descendantrevs: + # blindly reset the files, regardless of what actually changed + changedfiles.extend(repo[rev].files()) + + # reset files that only changed in the dirstate too + dirstate = repo.dirstate + dirchanges = [f for f in dirstate if dirstate[f] != 'n'] + changedfiles.extend(dirchanges) + + repo.dirstate.rebuild(urev, uctx.manifest(), changedfiles) + repo.dirstate.write(repo.currenttransaction()) + + # clear resolve state + mergemod.mergestate.clean(repo, repo['.'].node()) + + update = False + + + stripmod.strip(ui, repo, revs, backup=backup, update=update, + force=opts.get('force'), bookmarks=bookmarks, + soft=opts['soft']) + + return 0 + @command('debugsub', [('r', 'rev', '', _('revision to check'), _('REV'))], diff --git a/hgext/strip.py b/mercurial/strip.py copy from hgext/strip.py copy to mercurial/strip.py --- a/hgext/strip.py +++ b/mercurial/strip.py @@ -5,26 +5,19 @@ """ from __future__ import absolute_import -from mercurial.i18n import _ -from mercurial import ( +from .i18n import _ +from . import ( bookmarks as bookmarksmod, cmdutil, - error, hg, lock as lockmod, - merge, node as nodemod, - pycompat, - registrar, repair, - scmutil, util, ) nullid = nodemod.nullid release = lockmod.release -cmdtable = {} -command = registrar.command(cmdtable) # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should # be specifying the version(s) of Mercurial they are tested with, or @@ -40,7 +33,7 @@ cmdutil.checkunfinished(repo, skipmerge=True) return s -def _findupdatetarget(repo, nodes): +def findupdatetarget(repo, nodes): unode, p2 = repo.changelog.parents(nodes[0]) currentbranch = repo[None].branch() @@ -64,7 +57,7 @@ if update: checklocalchanges(repo, force=force) - urev = _findupdatetarget(repo, revs) + urev = findupdatetarget(repo, revs) hg.clean(repo, urev) repo.dirstate.write(repo.currenttransaction()) @@ -81,150 +74,3 @@ repomarks.applychanges(repo, tr, [(b, None) for b in bookmarks]) for bookmark in sorted(bookmarks): ui.write(_("bookmark '%s' deleted\n") % bookmark) - -@command("strip", - [ - ('r', 'rev', [], _('strip specified revision (optional, ' - 'can specify revisions without this ' - 'option)'), _('REV')), - ('f', 'force', None, _('force removal of changesets, discard ' - 'uncommitted changes (no backup)')), - ('', 'no-backup', None, _('do not save backup bundle')), - ('', 'nobackup', None, _('do not save backup bundle ' - '(DEPRECATED)')), - ('n', '', None, _('ignored (DEPRECATED)')), - ('k', 'keep', None, _("do not modify working directory during " - "strip")), - ('B', 'bookmark', [], _("remove revs only reachable from given" - " bookmark"), _('BOOKMARK')), - ('', 'soft', None, - _("simply drop changesets from visible history (EXPERIMENTAL)")), - ], - _('hg strip [-k] [-f] [-B bookmark] [-r] REV...'), - helpcategory=command.CATEGORY_MAINTENANCE) -def stripcmd(ui, repo, *revs, **opts): - """strip changesets and all their descendants from the repository - - The strip command removes the specified changesets and all their - descendants. If the working directory has uncommitted changes, the - operation is aborted unless the --force flag is supplied, in which - case changes will be discarded. - - If a parent of the working directory is stripped, then the working - directory will automatically be updated to the most recent - available ancestor of the stripped parent after the operation - completes. - - Any stripped changesets are stored in ``.hg/strip-backup`` as a - bundle (see :hg:`help bundle` and :hg:`help unbundle`). They can - be restored by running :hg:`unbundle .hg/strip-backup/BUNDLE`, - where BUNDLE is the bundle file created by the strip. Note that - the local revision numbers will in general be different after the - restore. - - Use the --no-backup option to discard the backup bundle once the - operation completes. - - Strip is not a history-rewriting operation and can be used on - changesets in the public phase. But if the stripped changesets have - been pushed to a remote repository you will likely pull them again. - - Return 0 on success. - """ - opts = pycompat.byteskwargs(opts) - backup = True - if opts.get('no_backup') or opts.get('nobackup'): - backup = False - - cl = repo.changelog - revs = list(revs) + opts.get('rev') - revs = set(scmutil.revrange(repo, revs)) - - with repo.wlock(): - bookmarks = set(opts.get('bookmark')) - if bookmarks: - repomarks = repo._bookmarks - if not bookmarks.issubset(repomarks): - raise error.Abort(_("bookmark '%s' not found") % - ','.join(sorted(bookmarks - set(repomarks.keys())))) - - # If the requested bookmark is not the only one pointing to a - # a revision we have to only delete the bookmark and not strip - # anything. revsets cannot detect that case. - nodetobookmarks = {} - for mark, node in repomarks.iteritems(): - nodetobookmarks.setdefault(node, []).append(mark) - for marks in nodetobookmarks.values(): - if bookmarks.issuperset(marks): - rsrevs = scmutil.bookmarkrevs(repo, marks[0]) - revs.update(set(rsrevs)) - if not revs: - with repo.lock(), repo.transaction('bookmark') as tr: - bmchanges = [(b, None) for b in bookmarks] - repomarks.applychanges(repo, tr, bmchanges) - for bookmark in sorted(bookmarks): - ui.write(_("bookmark '%s' deleted\n") % bookmark) - - if not revs: - raise error.Abort(_('empty revision set')) - - descendants = set(cl.descendants(revs)) - strippedrevs = revs.union(descendants) - roots = revs.difference(descendants) - - # if one of the wdir parent is stripped we'll need - # to update away to an earlier revision - update = any(p != nullid and cl.rev(p) in strippedrevs - for p in repo.dirstate.parents()) - - rootnodes = set(cl.node(r) for r in roots) - - q = getattr(repo, 'mq', None) - if q is not None and q.applied: - # refresh queue state if we're about to strip - # applied patches - if cl.rev(repo.lookup('qtip')) in strippedrevs: - q.applieddirty = True - start = 0 - end = len(q.applied) - for i, statusentry in enumerate(q.applied): - if statusentry.node in rootnodes: - # if one of the stripped roots is an applied - # patch, only part of the queue is stripped - start = i - break - del q.applied[start:end] - q.savedirty() - - revs = sorted(rootnodes) - if update and opts.get('keep'): - urev = _findupdatetarget(repo, revs) - uctx = repo[urev] - - # only reset the dirstate for files that would actually change - # between the working context and uctx - descendantrevs = repo.revs(b"%d::.", uctx.rev()) - changedfiles = [] - for rev in descendantrevs: - # blindly reset the files, regardless of what actually changed - changedfiles.extend(repo[rev].files()) - - # reset files that only changed in the dirstate too - dirstate = repo.dirstate - dirchanges = [f for f in dirstate if dirstate[f] != 'n'] - changedfiles.extend(dirchanges) - - repo.dirstate.rebuild(urev, uctx.manifest(), changedfiles) - repo.dirstate.write(repo.currenttransaction()) - - # clear resolve state - merge.mergestate.clean(repo, repo['.'].node()) - - update = False - - - strip(ui, repo, revs, backup=backup, update=update, - force=opts.get('force'), bookmarks=bookmarks, - soft=opts['soft']) - - return 0 diff --git a/tests/remotefilelog-library.sh b/tests/remotefilelog-library.sh --- a/tests/remotefilelog-library.sh +++ b/tests/remotefilelog-library.sh @@ -6,7 +6,6 @@ [extensions] remotefilelog= rebase= -strip= [ui] ssh=python "$TESTDIR/dummyssh" [server] diff --git a/tests/test-backout.t b/tests/test-backout.t --- a/tests/test-backout.t +++ b/tests/test-backout.t @@ -279,7 +279,7 @@ == test visibility to external preupdate hook $ hg update -q -C 2 - $ hg --config extensions.strip= strip 3 + $ hg debugstrip 3 saved backup bundle to * (glob) $ cat >> .hg/hgrc <> .hg/hgrc < strip tip + 1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> debugstrip tip 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/73f6ee326b27-7612e004-backup.hg 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated branch cache (base) in * seconds (glob) 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote branch cache (base) with 1 labels and 2 nodes - 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> strip tip exited 0 after * seconds (glob) + 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> debugstrip tip exited 0 after * seconds (glob) 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6 extension and python hooks - use the eol extension for a pythonhook diff --git a/tests/test-bookmarks-pushpull.t b/tests/test-bookmarks-pushpull.t --- a/tests/test-bookmarks-pushpull.t +++ b/tests/test-bookmarks-pushpull.t @@ -904,7 +904,7 @@ $ hg -R repo1 bookmarks -f -r 2 ADV_ON_REPO1 $ hg -R repo1 bookmarks -f -r 3 DIFF_ADV_ON_REPO1 $ hg -R repo1 bookmarks -f -r 3 DIFF_DIVERGED - $ hg -R repo1 -q --config extensions.mq= strip 4 + $ hg -R repo1 -q --config extensions.mq= debugstrip 4 $ hg -R repo1 log -G --template '{node|short} ({bookmarks})' o 6100d3090acf (DIFF_ADV_ON_REPO1 DIFF_DIVERGED) | @@ -921,7 +921,7 @@ $ hg -R repo2 bookmarks -f -r 2 DIVERGED $ hg -R repo2 bookmarks -f -r 4 DIFF_ADV_ON_REPO2 $ hg -R repo2 bookmarks -f -r 4 DIFF_DIVERGED - $ hg -R repo2 -q --config extensions.mq= strip 3 + $ hg -R repo2 -q --config extensions.mq= debugstrip 3 $ hg -R repo2 log -G --template '{node|short} ({bookmarks})' o e7bd5218ca15 (DIFF_ADV_ON_REPO2 DIFF_DIVERGED) | diff --git a/tests/test-bookmarks-strip.t b/tests/test-bookmarks-strip.t --- a/tests/test-bookmarks-strip.t +++ b/tests/test-bookmarks-strip.t @@ -55,7 +55,7 @@ strip to revision 1 - $ hg strip 1 + $ hg debugstrip 1 saved backup bundle to $TESTTMP/.hg/strip-backup/*-backup.hg (glob) list bookmarks diff --git a/tests/test-bookmarks.t b/tests/test-bookmarks.t --- a/tests/test-bookmarks.t +++ b/tests/test-bookmarks.t @@ -882,7 +882,7 @@ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved (leaving bookmark should-end-on-two) $ hg book four - $ hg --config extensions.mq= strip 3 + $ hg --config extensions.mq= debugstrip 3 saved backup bundle to * (glob) should-end-on-two should end up pointing to revision 2, as that's the tipmost surviving ancestor of the stripped revision. diff --git a/tests/test-branches.t b/tests/test-branches.t --- a/tests/test-branches.t +++ b/tests/test-branches.t @@ -860,7 +860,7 @@ 0090: c9 14 c9 9f 00 00 00 06 cd 21 a8 0b 80 00 00 05 |.........!......| cache is updated/truncated when stripping - it is thus very hard to get in a situation where the cache is out of sync and the hash check detects it - $ hg --config extensions.strip= strip -r tip --nob + $ hg debugstrip -r tip --nob $ f --size .hg/cache/rbc-revs* .hg/cache/rbc-revs-v1: size=152 diff --git a/tests/test-bundle-phases.t b/tests/test-bundle-phases.t --- a/tests/test-bundle-phases.t +++ b/tests/test-bundle-phases.t @@ -2,7 +2,6 @@ > [experimental] > bundle-phases=yes > [extensions] - > strip= > drawdag=$TESTDIR/drawdag.py > EOF @@ -45,7 +44,7 @@ cache:rev-branch-cache -- {} (mandatory: False) phase-heads -- {} (mandatory: True) 26805aba1e600a82e93661149f2313866a221a7b draft - $ hg strip --no-backup C + $ hg debugstrip --no-backup C $ hg unbundle -q bundle $ rm bundle $ hg log -G -T '{desc} {phase}\n' @@ -62,7 +61,7 @@ Root revision's phase is preserved $ hg bundle -a bundle 5 changesets found - $ hg strip --no-backup A + $ hg debugstrip --no-backup A $ hg unbundle -q bundle $ rm bundle $ hg log -G -T '{desc} {phase}\n' @@ -80,7 +79,7 @@ $ hg phase --public E $ hg bundle -a bundle 5 changesets found - $ hg strip --no-backup A + $ hg debugstrip --no-backup A $ hg unbundle -q bundle $ rm bundle $ hg log -G -T '{desc} {phase}\n' @@ -98,7 +97,7 @@ $ hg phase --secret --force D $ hg bundle -a bundle 5 changesets found - $ hg strip --no-backup A + $ hg debugstrip --no-backup A $ hg unbundle -q bundle $ rm bundle $ hg log -G -T '{desc} {phase}\n' @@ -116,7 +115,7 @@ $ hg phase --draft --force B $ hg bundle --base B -r E bundle 3 changesets found - $ hg strip --no-backup C + $ hg debugstrip --no-backup C $ hg phase --public B $ hg unbundle -q bundle $ rm bundle @@ -134,7 +133,7 @@ Phase of ancestors of stripped node get advanced to accommodate child $ hg bundle --base B -r E bundle 3 changesets found - $ hg strip --no-backup C + $ hg debugstrip --no-backup C $ hg phase --force --secret B $ hg unbundle -q bundle $ rm bundle @@ -172,7 +171,7 @@ o A public Unbundling change in the middle of a stack does not affect later changes - $ hg strip --no-backup E + $ hg debugstrip --no-backup E $ hg phase --secret --force D $ hg log -G -T '{desc} {phase}\n' o D secret @@ -238,7 +237,7 @@ phase-heads -- {} (mandatory: True) dc0947a82db884575bb76ea10ac97b08536bfa03 public 03ca77807e919db8807c3749086dc36fb478cac0 draft - $ hg strip --no-backup A + $ hg debugstrip --no-backup A $ hg unbundle -q bundle $ rm bundle $ hg log -G -T '{node|short} {desc} {phase}\n' diff --git a/tests/test-commandserver.t b/tests/test-commandserver.t --- a/tests/test-commandserver.t +++ b/tests/test-commandserver.t @@ -441,7 +441,7 @@ ... # load _phasecache._phaserevs and _phasesets ... runcommand(server, [b'log', b'-qr', b'draft()']) ... # strip cached revisions by another process - ... os.system('hg --config extensions.strip= strip -q 5') + ... os.system('hg debugstrip -q 5') ... # shouldn't abort by "unknown revision '6'" ... runcommand(server, [b'log', b'-qr', b'draft()']) ... bprint(b'') @@ -475,7 +475,7 @@ ... runcommand(server, [b'phase', b'.'], outfilter=sep) ... ... # strip 1::4 outside server - ... os.system('hg -q --config extensions.mq= strip 1') + ... os.system('hg -q --config extensions.mq= debugstrip 1') ... ... # shouldn't raise "7966c8e3734d: no node!" ... runcommand(server, [b'branches']) diff --git a/tests/test-completion.t b/tests/test-completion.t --- a/tests/test-completion.t +++ b/tests/test-completion.t @@ -126,6 +126,7 @@ debugsetparents debugsidedata debugssl + debugstrip debugsub debugsuccessorssets debugtemplate @@ -308,6 +309,7 @@ debugsetparents: debugsidedata: changelog, manifest, dir debugssl: + debugstrip: rev, force, no-backup, nobackup, , keep, bookmark, soft debugsub: rev debugsuccessorssets: closest debugtemplate: rev, define diff --git a/tests/test-convert-filemap.t b/tests/test-convert-filemap.t --- a/tests/test-convert-filemap.t +++ b/tests/test-convert-filemap.t @@ -670,7 +670,7 @@ $ cd namedbranch - $ hg --config extensions.mq= strip tip + $ hg --config extensions.mq= debugstrip tip 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/namedbranch/.hg/strip-backup/73899bcbe45c-92adf160-backup.hg $ hg up foo diff --git a/tests/test-convert-svn-sink.t b/tests/test-convert-svn-sink.t --- a/tests/test-convert-svn-sink.t +++ b/tests/test-convert-svn-sink.t @@ -255,7 +255,7 @@ $ hg --cwd a up 5 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ hg --cwd a --config extensions.strip= strip -r 6 + $ hg --cwd a debugstrip -r 6 saved backup bundle to $TESTTMP/a/.hg/strip-backup/bd4f7b7a7067-ed505e42-backup.hg #endif diff --git a/tests/test-copy-move-merge.t b/tests/test-copy-move-merge.t --- a/tests/test-copy-move-merge.t +++ b/tests/test-copy-move-merge.t @@ -79,7 +79,7 @@ - next verify copy metadata is lost when disabled - $ hg strip -r . --config extensions.strip= + $ hg debugstrip -r . 2 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/t/.hg/strip-backup/550bd84c0cd3-fc575957-backup.hg $ hg up -qC 2 diff --git a/tests/test-debugcommands.t b/tests/test-debugcommands.t --- a/tests/test-debugcommands.t +++ b/tests/test-debugcommands.t @@ -370,7 +370,7 @@ 9 1 10 2 11 1 - $ hg --config extensions.strip= strip --no-backup -r 1 + $ hg debugstrip --no-backup -r 1 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Test max chain len diff --git a/tests/test-strip.t b/tests/test-debugstrip.t copy from tests/test-strip.t copy to tests/test-debugstrip.t --- a/tests/test-strip.t +++ b/tests/test-debugstrip.t @@ -1,5 +1,4 @@ $ echo "[extensions]" >> $HGRCPATH - $ echo "strip=" >> $HGRCPATH $ echo "drawdag=$TESTDIR/drawdag.py" >> $HGRCPATH $ restore() { @@ -8,10 +7,10 @@ > } $ teststrip() { > hg up -C $1 - > echo % before update $1, strip $2 + > echo % before update $1, debugstrip $2 > hg log -G -T '{rev}:{node}' - > hg --traceback strip $2 - > echo % after update $1, strip $2 + > hg --traceback debugstrip $2 + > echo % after update $1, debugstrip $2 > hg log -G -T '{rev}:{node}' > restore > } @@ -69,7 +68,7 @@ $ teststrip 4 4 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - % before update 4, strip 4 + % before update 4, debugstrip 4 @ 4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce | o 3:65bd5f99a4a376cdea23a1153f07856b0d881d64 @@ -82,7 +81,7 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) - % after update 4, strip 4 + % after update 4, debugstrip 4 @ 3:65bd5f99a4a376cdea23a1153f07856b0d881d64 | | o 2:264128213d290d868c54642d13aeaa3675551a78 @@ -93,7 +92,7 @@ $ teststrip 4 3 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - % before update 4, strip 3 + % before update 4, debugstrip 3 @ 4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce | o 3:65bd5f99a4a376cdea23a1153f07856b0d881d64 @@ -106,7 +105,7 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) - % after update 4, strip 3 + % after update 4, debugstrip 3 o 2:264128213d290d868c54642d13aeaa3675551a78 | @ 1:ef3a871183d7199c541cc140218298bbfcc6c28a @@ -115,7 +114,7 @@ $ teststrip 1 4 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - % before update 1, strip 4 + % before update 1, debugstrip 4 o 4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce | o 3:65bd5f99a4a376cdea23a1153f07856b0d881d64 @@ -127,7 +126,7 @@ o 0:9ab35a2d17cb64271241ea881efcc19dd953215b saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) - % after update 1, strip 4 + % after update 1, debugstrip 4 o 3:65bd5f99a4a376cdea23a1153f07856b0d881d64 | | o 2:264128213d290d868c54642d13aeaa3675551a78 @@ -138,7 +137,7 @@ $ teststrip 4 2 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - % before update 4, strip 2 + % before update 4, debugstrip 2 @ 4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce | o 3:65bd5f99a4a376cdea23a1153f07856b0d881d64 @@ -150,7 +149,7 @@ o 0:9ab35a2d17cb64271241ea881efcc19dd953215b saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) - % after update 4, strip 2 + % after update 4, debugstrip 2 @ 3:443431ffac4f5b5a19b0b6c298a21b7ba736bcce | o 2:65bd5f99a4a376cdea23a1153f07856b0d881d64 @@ -161,7 +160,7 @@ $ teststrip 4 1 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - % before update 4, strip 1 + % before update 4, debugstrip 1 @ 4:264128213d290d868c54642d13aeaa3675551a78 | | o 3:443431ffac4f5b5a19b0b6c298a21b7ba736bcce @@ -174,12 +173,12 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) - % after update 4, strip 1 + % after update 4, debugstrip 1 @ 0:9ab35a2d17cb64271241ea881efcc19dd953215b $ teststrip null 4 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - % before update null, strip 4 + % before update null, debugstrip 4 o 4:264128213d290d868c54642d13aeaa3675551a78 | | o 3:443431ffac4f5b5a19b0b6c298a21b7ba736bcce @@ -191,7 +190,7 @@ o 0:9ab35a2d17cb64271241ea881efcc19dd953215b saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) - % after update null, strip 4 + % after update null, debugstrip 4 o 3:443431ffac4f5b5a19b0b6c298a21b7ba736bcce | o 2:65bd5f99a4a376cdea23a1153f07856b0d881d64 @@ -240,7 +239,7 @@ summary: c - $ hg --traceback strip 4 + $ hg --traceback debugstrip 4 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/264128213d29-0b39d6bf-backup.hg $ hg parents @@ -314,12 +313,12 @@ summary: c ##strip not allowed with merge in progress - $ hg strip 4 + $ hg debugstrip 4 abort: outstanding uncommitted merge (use 'hg commit' or 'hg merge --abort') [255] ##strip allowed --force with merge in progress - $ hg strip 4 --force + $ hg debugstrip 4 --force 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) @@ -368,7 +367,7 @@ 2 is parent of 3, only one strip should happen - $ hg strip "roots(2)" 3 + $ hg debugstrip "roots(2)" 3 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) $ hg log -G @ changeset: 2:264128213d29 @@ -418,7 +417,7 @@ Failed hook while applying "saveheads" bundle. - $ hg strip 2 --config hooks.pretxnchangegroup.bad=false + $ hg debugstrip 2 --config hooks.pretxnchangegroup.bad=false 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) transaction abort! @@ -460,7 +459,7 @@ 2 different branches: 2 strips - $ hg strip 2 4 + $ hg debugstrip 2 4 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) $ hg log -G o changeset: 2:65bd5f99a4a3 @@ -483,7 +482,7 @@ 2 different branches and a common ancestor: 1 strip - $ hg strip 1 "2|4" + $ hg debugstrip 1 "2|4" 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) $ restore @@ -498,7 +497,7 @@ data/bar.i #endif - $ hg strip tip + $ hg debugstrip tip 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) #if repofncache @@ -508,13 +507,13 @@ stripping an empty revset - $ hg strip "1 and not 1" + $ hg debugstrip "1 and not 1" abort: empty revision set [255] remove branchy history for qimport tests - $ hg strip 3 + $ hg debugstrip 3 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) @@ -536,7 +535,7 @@ stripping revision in queue - $ hg strip 3 + $ hg debugstrip 3 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) @@ -547,7 +546,7 @@ stripping ancestor of queue - $ hg strip 1 + $ hg debugstrip 1 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) @@ -592,10 +591,10 @@ mq: 3 unapplied $ echo c > b - $ hg strip tip + $ hg debugstrip tip abort: uncommitted changes [255] - $ hg strip tip --keep + $ hg debugstrip tip --keep saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) $ hg log --graph @ changeset: 0:9ab35a2d17cb @@ -632,7 +631,7 @@ $ hg rm bar $ hg commit -mc $ hg status - $ hg strip --keep tip + $ hg debugstrip --keep tip saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) $ hg status ! bar @@ -646,7 +645,7 @@ $ hg status $ echo b > b $ echo d > d - $ hg strip --keep tip + $ hg debugstrip --keep tip saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob) $ hg status M b @@ -659,7 +658,7 @@ $ hg commit -mc $ hg rm c $ hg commit -mc - $ hg strip --keep '.^' -q + $ hg debugstrip --keep '.^' -q $ cd .. stripping many nodes on a complex graph (issue3299) @@ -667,10 +666,10 @@ $ hg init issue3299 $ cd issue3299 $ hg debugbuilddag '@a.:a@b.:b.:x a $ hg add a - $ hg strip -B B + $ hg debugstrip -B B abort: uncommitted changes [255] $ hg bookmarks @@ -752,14 +751,12 @@ Make sure no one adds back a -b option: - $ hg strip -b tip - hg strip: option -b not recognized + $ hg debugstrip -b tip + hg debugstrip: option -b not recognized hg strip [-k] [-f] [-B bookmark] [-r] REV... strip changesets and all their descendants from the repository - (use 'hg help -e strip' to show help for the strip extension) - options ([+] can be repeated): -r --rev REV [+] strip specified revision (optional, can specify @@ -771,7 +768,7 @@ -B --bookmark BOOKMARK [+] remove revs only reachable from given bookmark --mq operate on patch repository - (use 'hg strip -h' to show more help) + (use 'hg debugstrip -h' to show more help) [255] $ cd .. @@ -784,14 +781,14 @@ $ hg commit -Aqm a $ touch b $ hg commit -Aqm b - $ hg strip -r 0 + $ hg debugstrip -r 0 0 files updated, 0 files merged, 2 files removed, 0 files unresolved saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg $ ls .hg/strip-backup 3903775176ed-e68910bd-backup.hg #if repobundlerepo $ hg pull -q -r 3903775176ed .hg/strip-backup/3903775176ed-e68910bd-backup.hg - $ hg strip -r 0 + $ hg debugstrip -r 0 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-54390173-backup.hg $ ls .hg/strip-backup 3903775176ed-54390173-backup.hg @@ -882,7 +879,7 @@ check strip behavior - $ hg --config extensions.strip= strip 'desc(commitD)' --debug + $ hg debugstrip 'desc(commitD)' --debug resolving manifests branchmerge: False, force: True, partial: False ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71 @@ -972,7 +969,7 @@ $ hg add l $ hg commit -m commitL $ hg book -r tip blah - $ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py + $ hg debugstrip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py 0 files updated, 0 files merged, 2 files removed, 0 files unresolved saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg $ hg up -C 1 @@ -993,7 +990,7 @@ > return tr > repo.__class__ = crashstriprepo > EOF - $ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py + $ hg debugstrip tip --config extensions.crash=$TESTTMP/crashstrip.py saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg strip failed, backup bundle stored in '$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg' abort: boom @@ -1060,7 +1057,7 @@ summary: commitA - $ hg strip --force -r 35358f982181 + $ hg debugstrip --force -r 35358f982181 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-50d992d4-backup.hg $ hg log -G @@ -1137,7 +1134,7 @@ summary: commitA - $ hg strip -r 35358f982181 + $ hg debugstrip -r 35358f982181 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg $ hg log -G @@ -1173,7 +1170,7 @@ new changesets 35358f982181:4cf5e92caec2 (2 drafts) 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg strip -k -r 35358f982181 + $ hg debugstrip -k -r 35358f982181 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg $ hg log -G @ changeset: 3:f62c6c09b707 @@ -1386,7 +1383,7 @@ $ hg ci --amend -m a2 $ hg debugobsolete cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} - $ hg strip . + $ hg debugstrip . 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg $ hg unbundle -q .hg/strip-backup/* diff --git a/tests/test-exchange-obsmarkers-case-D1.t b/tests/test-exchange-obsmarkers-case-D1.t --- a/tests/test-exchange-obsmarkers-case-D1.t +++ b/tests/test-exchange-obsmarkers-case-D1.t @@ -67,7 +67,7 @@ $ hg prune -d '0 0' 'desc(B)' 1 new obsolescence markers obsoleted 1 changesets - $ hg strip --hidden -q 'desc(A0)' + $ hg debugstrip --hidden -q 'desc(A0)' $ hg log -G --hidden @ e5ea8f9c7314 (draft): A1 | diff --git a/tests/test-exchange-obsmarkers-case-D2.t b/tests/test-exchange-obsmarkers-case-D2.t --- a/tests/test-exchange-obsmarkers-case-D2.t +++ b/tests/test-exchange-obsmarkers-case-D2.t @@ -59,7 +59,7 @@ $ hg prune --date '0 0' . 1 new obsolescence markers obsoleted 1 changesets - $ hg strip --hidden -q 'desc(A1)' + $ hg debugstrip --hidden -q 'desc(A1)' $ hg log -G --hidden x 28b51eb45704 (draft): A0 | diff --git a/tests/test-exchange-obsmarkers-case-D3.t b/tests/test-exchange-obsmarkers-case-D3.t --- a/tests/test-exchange-obsmarkers-case-D3.t +++ b/tests/test-exchange-obsmarkers-case-D3.t @@ -62,7 +62,7 @@ $ hg prune -d '0 0' . 1 new obsolescence markers obsoleted 1 changesets - $ hg strip --hidden -q 'desc(A1)' + $ hg debugstrip --hidden -q 'desc(A1)' $ hg log -G --hidden @ 35b183996678 (draft): B | diff --git a/tests/test-extension.t b/tests/test-extension.t --- a/tests/test-extension.t +++ b/tests/test-extension.t @@ -1019,7 +1019,7 @@ #if no-extraextensions $ hg debugextensions mq - strip + strip (untested!) #endif For extensions, which name matches one of its commands, help @@ -1546,7 +1546,7 @@ $ echo 'getversion = lambda: b"1.twentythree"' >> throw.py $ rm -f throw.pyc throw.pyo $ rm -Rf __pycache__ - $ hg version -v --config extensions.throw=throw.py --config extensions.strip= + $ hg version -v --config extensions.throw=throw.py Mercurial Distributed SCM (version *) (glob) (see https://mercurial-scm.org for more information) @@ -1557,15 +1557,13 @@ Enabled extensions: throw external 1.twentythree - strip internal $ hg version -q --config extensions.throw=throw.py Mercurial Distributed SCM (version *) (glob) Test template output: - $ hg version --config extensions.strip= -T'{extensions}' - strip + $ hg version -T'{extensions}' Test JSON output of version: @@ -1585,20 +1583,19 @@ } ] - $ hg version --config extensions.strip= -Tjson + $ hg version -Tjson [ { - "extensions": [{"bundled": true, "name": "strip", "ver": null}], + "extensions": [], "ver": "*" (glob) } ] Test template output of version: - $ hg version --config extensions.throw=throw.py --config extensions.strip= \ + $ hg version --config extensions.throw=throw.py \ > -T'{extensions % "{name} {pad(ver, 16)} ({if(bundled, "internal", "external")})\n"}' throw 1.twentythree (external) - strip (internal) Refuse to load extensions with minimum version requirements @@ -1679,7 +1676,7 @@ dudu (untested!) mq reposetuptest (untested!) - strip + strip (untested!) #endif $ hg clone -U src clone-dst1 diff --git a/tests/test-flagprocessor.t b/tests/test-flagprocessor.t --- a/tests/test-flagprocessor.t +++ b/tests/test-flagprocessor.t @@ -242,7 +242,7 @@ #if repobundlerepo $ hg bundle --base 1 bundle.hg 4 changesets found - $ hg --config extensions.strip= strip -r 2 --no-backup --force -q + $ hg debugstrip -r 2 --no-backup --force -q $ hg -R bundle.hg log --stat -T '{rev} {desc}\n' base64 5 branching base64 | 2 +- diff --git a/tests/test-generaldelta.t b/tests/test-generaldelta.t --- a/tests/test-generaldelta.t +++ b/tests/test-generaldelta.t @@ -146,7 +146,7 @@ 1 1 2 0 prev 61 86 120 1.39535 120 0 0.00000 2 1 2 0 p2 62 301 121 0.40199 182 61 0.50413 - $ hg strip -q -r . --config extensions.strip= + $ hg debugstrip -q -r . - Verify aggressive merge uses p2 (commit 0) as delta parent $ hg up -q -C 1 @@ -159,7 +159,7 @@ 2 1 2 0 p2 62 301 121 0.40199 182 61 0.50413 Test that strip bundle use bundle2 - $ hg --config extensions.strip= strip . + $ hg debugstrip . 0 files updated, 0 files merged, 5 files removed, 0 files unresolved saved backup bundle to $TESTTMP/aggressive/.hg/strip-backup/1c5d4dc9a8b8-6c68e60c-backup.hg $ hg debugbundle .hg/strip-backup/* diff --git a/tests/test-graft.t b/tests/test-graft.t --- a/tests/test-graft.t +++ b/tests/test-graft.t @@ -64,7 +64,7 @@ $ hg st --change . M d - $ hg -q strip . --config extensions.strip= + $ hg -q debugstrip . Test --base for collapsing changesets 2 and 3, thus getting both b and c @@ -78,7 +78,7 @@ A c R a - $ hg -q strip . --config extensions.strip= + $ hg -q debugstrip . Specifying child as --base revision fails safely (perhaps slightly confusing, but consistent) @@ -307,7 +307,7 @@ $ echo c >> e $ hg ci -mtest - $ hg strip . --config extensions.strip= + $ hg debugstrip . 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob) @@ -877,7 +877,7 @@ $ hg up -qC 7 $ hg tag -l -r 13 tmp - $ hg --config extensions.strip= strip 2 + $ hg debugstrip 2 saved backup bundle to $TESTTMP/a/.hg/strip-backup/5c095ad7e90f-d323a1e4-backup.hg $ hg graft tmp skipping already grafted revision 8:7a4785234d87 (2:ef0ef43d49e7 also has unknown origin 5c095ad7e90f) diff --git a/tests/test-help.t b/tests/test-help.t --- a/tests/test-help.t +++ b/tests/test-help.t @@ -1051,6 +1051,7 @@ debugsidedata dump the side data for a cl/manifest/file revision debugssl test a secure connection to a server + debugstrip strip changesets and all their descendants from the repository debugsub (no help text available) debugsuccessorssets show set of successors for revision diff --git a/tests/test-hgweb-bundle.t b/tests/test-hgweb-bundle.t --- a/tests/test-hgweb-bundle.t +++ b/tests/test-hgweb-bundle.t @@ -2,10 +2,6 @@ $ hg init server $ cd server - $ cat >> .hg/hgrc << EOF - > [extensions] - > strip= - > EOF $ echo 1 > foo $ hg commit -A -m 'first' @@ -16,7 +12,7 @@ Produce a bundle to use - $ hg strip -r 1 + $ hg debugstrip -r 1 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/server/.hg/strip-backup/ed602e697e0f-cc9fff6a-backup.hg diff --git a/tests/test-histedit-arguments.t b/tests/test-histedit-arguments.t --- a/tests/test-histedit-arguments.t +++ b/tests/test-histedit-arguments.t @@ -175,7 +175,7 @@ ~ $ hg unbundle -q $TESTTMP/foo/.hg/strip-backup/08d98a8350f3-02594089-histedit.hg - $ hg strip -q -r f5ed --config extensions.strip= + $ hg debugstrip -q -r f5ed $ hg up -q 08d98a8350f3 Test that missing revisions are detected @@ -330,7 +330,7 @@ Test --continue with --keep - $ hg strip -q -r . --config extensions.strip= + $ hg debugstrip -q -r . $ hg histedit '.^' -q --keep --commands - << EOF > edit eb57da33312f 2 three > pick f3cfcca30c44 4 x diff --git a/tests/test-histedit-edit.t b/tests/test-histedit-edit.t --- a/tests/test-histedit-edit.t +++ b/tests/test-histedit-edit.t @@ -3,7 +3,6 @@ $ cat >> $HGRCPATH < [extensions] > histedit= - > strip= > mockmakedate = $TESTDIR/mockmakedate.py > EOF @@ -139,7 +138,7 @@ [255] Try to delete necessary commit - $ hg strip -r 652413b + $ hg debugstrip -r 652413b abort: histedit in progress, can't strip 652413bf663e [255] @@ -209,7 +208,7 @@ (hg histedit --continue to resume) $ mv .hg/histedit-state .hg/histedit-state.bak - $ hg strip -q -r b5f70786f9b0 + $ hg debugstrip -q -r b5f70786f9b0 $ mv .hg/histedit-state.bak .hg/histedit-state $ hg histedit --abort adding changesets diff --git a/tests/test-histedit-obsolete.t b/tests/test-histedit-obsolete.t --- a/tests/test-histedit-obsolete.t +++ b/tests/test-histedit-obsolete.t @@ -79,7 +79,7 @@ ? plan $ hg commit --amend -X . -m XXXXXX $ hg commit --amend -X . -m b2 - $ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup + $ hg --hidden debugstrip 'desc(XXXXXX)' --no-backup $ hg histedit --continue $ hg log -G @ 8:273c1f3b8626 c diff --git a/tests/test-hook.t b/tests/test-hook.t --- a/tests/test-hook.t +++ b/tests/test-hook.t @@ -1251,7 +1251,7 @@ > [hooks] > pretxnclose.error = exit 1 > EOF - $ hg strip -r 0 --config extensions.strip= + $ hg debugstrip -r 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to * (glob) transaction abort! diff --git a/tests/test-import-bypass.t b/tests/test-import-bypass.t --- a/tests/test-import-bypass.t +++ b/tests/test-import-bypass.t @@ -183,7 +183,7 @@ @@ -1,1 +1,2 @@ cc +cc - $ hg -q --config extensions.strip= strip . + $ hg -q debugstrip . Test unsupported combinations @@ -323,7 +323,7 @@ 1b77bc7d1db9f0e7f1716d515b630516ab386c89 $ hg export -o ../empty-log.diff . $ hg update -q -C ".^1" - $ hg --config extensions.strip= strip -q tip + $ hg debugstrip -q tip $ HGEDITOR=cat hg import --exact --bypass ../empty-log.diff applying ../empty-log.diff $ hg tip -T "{node}\n" diff --git a/tests/test-import-merge.t b/tests/test-import-merge.t --- a/tests/test-import-merge.t +++ b/tests/test-import-merge.t @@ -65,7 +65,7 @@ $ tipparents 1:540395c44225 changea 3:102a90ea7b4a addb - $ hg strip --no-backup tip + $ hg debugstrip --no-backup tip 0 files updated, 0 files merged, 1 files removed, 0 files unresolved Test without --exact and diff.p1 != workingdir.p1 @@ -78,7 +78,7 @@ (use --exact to import the patch as a merge) $ tipparents 2:890ecaa90481 addc - $ hg strip --no-backup tip + $ hg debugstrip --no-backup tip 0 files updated, 0 files merged, 1 files removed, 0 files unresolved Test with --exact @@ -89,7 +89,7 @@ $ tipparents 1:540395c44225 changea 3:102a90ea7b4a addb - $ hg strip --no-backup tip + $ hg debugstrip --no-backup tip 0 files updated, 0 files merged, 1 files removed, 0 files unresolved Test with --bypass and diff.p1 == workingdir.p1 @@ -101,7 +101,7 @@ $ tipparents 1:540395c44225 changea 3:102a90ea7b4a addb - $ hg strip --no-backup tip + $ hg debugstrip --no-backup tip Test with --bypass and diff.p1 != workingdir.p1 @@ -113,7 +113,7 @@ (use --exact to import the patch as a merge) $ tipparents 2:890ecaa90481 addc - $ hg strip --no-backup tip + $ hg debugstrip --no-backup tip Test with --bypass and --exact @@ -122,7 +122,7 @@ $ tipparents 1:540395c44225 changea 3:102a90ea7b4a addb - $ hg strip --no-backup tip + $ hg debugstrip --no-backup tip $ cd .. diff --git a/tests/test-import.t b/tests/test-import.t --- a/tests/test-import.t +++ b/tests/test-import.t @@ -121,7 +121,7 @@ d8804f3f5396d800812f579c8452796a5993bdb2 $ hg --cwd b export -o ../empty-log.diff . $ hg --cwd b update -q -C ".^1" - $ hg --cwd b --config extensions.strip= strip -q tip + $ hg --cwd b debugstrip -q tip $ HGEDITOR=cat hg --cwd b import --exact ../empty-log.diff applying ../empty-log.diff $ hg --cwd b tip -T "{node}\n" @@ -467,7 +467,7 @@ parent: 1 $ hg --cwd b update -q -C 0 - $ hg --cwd b --config extensions.strip= strip -q 1 + $ hg --cwd b debugstrip -q 1 Test visibility of in-memory dirstate changes inside transaction to external process diff --git a/tests/test-keyword.t b/tests/test-keyword.t --- a/tests/test-keyword.t +++ b/tests/test-keyword.t @@ -228,7 +228,7 @@ $ hg status -A --rev 3:4 i C i - $ hg -q strip --no-backup 2 + $ hg -q debugstrip --no-backup 2 Test hook execution @@ -585,7 +585,7 @@ $ head -1 a expand $Id: a,v 67d8c481a6be 1970/01/01 00:00:15 test $ - $ hg -q strip --no-backup tip + $ hg -q debugstrip --no-backup tip Test patch queue repo diff --git a/tests/test-lfs.t b/tests/test-lfs.t --- a/tests/test-lfs.t +++ b/tests/test-lfs.t @@ -419,7 +419,7 @@ * (changelog) (glob) * (manifests) (glob) * a (glob) - $ hg --config extensions.strip= strip -r 2 --no-backup --force -q + $ hg debugstrip -r 2 --no-backup --force -q $ hg -R bundle.hg log -p -T '{rev} {desc}\n' a 5 branching diff --git a/a b/a diff --git a/tests/test-mq-qpush-exact.t b/tests/test-mq-qpush-exact.t --- a/tests/test-mq-qpush-exact.t +++ b/tests/test-mq-qpush-exact.t @@ -27,7 +27,7 @@ $ hg add fp0 $ hg ci -m p0 -d "0 0" $ hg export -r. > p0 - $ hg strip -qn . + $ hg debugstrip -qn . $ hg qimport p0 adding p0 to series file $ hg qpush diff --git a/tests/test-mq.t b/tests/test-mq.t --- a/tests/test-mq.t +++ b/tests/test-mq.t @@ -792,7 +792,7 @@ $ echo x>x $ hg ci -Ama adding x - $ hg strip tip + $ hg debugstrip tip 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob) $ hg unbundle .hg/strip-backup/* @@ -810,13 +810,13 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo y>y $ hg add y - $ hg strip tip + $ hg debugstrip tip abort: uncommitted changes [255] --force strip with local changes - $ hg strip -f tip + $ hg debugstrip -f tip 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/b/.hg/strip-backup/770eb8fce608-0ddcae0f-backup.hg $ cd .. @@ -917,7 +917,7 @@ $ hg qpop popping bar now at: foo - $ hg strip -qn tip + $ hg debugstrip -qn tip $ hg tip changeset: 0:cb9a9f314b8b tag: tip @@ -1217,7 +1217,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: add foo - $ hg strip 1 + $ hg debugstrip 1 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/strip/.hg/strip-backup/*-backup.hg (glob) $ checkundo strip diff --git a/tests/test-narrow-strip.t b/tests/test-narrow-strip.t --- a/tests/test-narrow-strip.t +++ b/tests/test-narrow-strip.t @@ -54,17 +54,13 @@ updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd narrow - $ cat >> $HGRCPATH < [extensions] - > strip= - > EOF Can strip and recover changesets affecting only files within narrow spec $ hg co -r 'desc("modify inside")' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ rm -f .hg/strip-backup/*-backup.hg - $ hg strip . + $ hg debugstrip . 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob) $ hg unbundle .hg/strip-backup/*-backup.hg @@ -93,7 +89,7 @@ outside\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !) $ rm -f .hg/strip-backup/*-backup.hg - $ hg strip . + $ hg debugstrip . 0 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob) $ hg unbundle .hg/strip-backup/*-backup.hg @@ -121,7 +117,7 @@ $ hg co -r 'desc("modify inside")' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ rm .hg/strip-backup/*-backup.hg - $ hg strip . + $ hg debugstrip . 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob) #if repobundlerepo @@ -136,7 +132,7 @@ (run 'hg heads' to see heads, 'hg merge' to merge) $ rm .hg/strip-backup/*-backup.hg - $ hg strip 0 + $ hg debugstrip 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob) diff --git a/tests/test-obsolete-changeset-exchange.t b/tests/test-obsolete-changeset-exchange.t --- a/tests/test-obsolete-changeset-exchange.t +++ b/tests/test-obsolete-changeset-exchange.t @@ -64,7 +64,7 @@ $ hg phase --draft --force f89bcc95eba5 $ hg phase -R ../other --draft --force f89bcc95eba5 $ hg commit --amend -m "A''" - $ hg --hidden --config extensions.mq= strip --no-backup f89bcc95eba5 + $ hg --hidden --config extensions.mq= debugstrip --no-backup f89bcc95eba5 $ hg pull ../other pulling from ../other searching for changes @@ -80,7 +80,7 @@ $ hg bundle --hidden --rev f89bcc95eba5 --base "f89bcc95eba5^" ../f89bcc95eba5.hg 1 changesets found - $ hg --hidden --config extensions.mq= strip --no-backup f89bcc95eba5 + $ hg --hidden --config extensions.mq= debugstrip --no-backup f89bcc95eba5 $ hg unbundle ../f89bcc95eba5.hg adding changesets adding manifests diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t --- a/tests/test-obsolete.t +++ b/tests/test-obsolete.t @@ -1297,7 +1297,7 @@ tiptag 2:323a9c3ddd91 tip 2:323a9c3ddd91 visible 1:29f0c6921ddd - $ hg --config extensions.strip= strip -r tip --no-backup + $ hg debugstrip -r tip --no-backup 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg tags visible 1:29f0c6921ddd @@ -1522,7 +1522,7 @@ o 0:a78f55e5508c (draft) [ ] 0 - $ hg strip --hidden -r 2 --config extensions.strip= --config devel.strip-obsmarkers=no + $ hg debugstrip --hidden -r 2 --config devel.strip-obsmarkers=no saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e008cf283490-ede36964-backup.hg $ hg debugobsolete e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} @@ -1573,7 +1573,7 @@ Testing that strip remove markers: - $ hg strip -r 1 --config extensions.strip= + $ hg debugstrip -r 1 0 files updated, 0 files merged, 2 files removed, 0 files unresolved saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e016b03fd86f-65ede734-backup.hg $ hg debugobsolete @@ -1681,7 +1681,7 @@ $ hg bundle -r . --base .~1 ../bundle-2.hg 1 changesets found $ getid . - $ hg --config extensions.strip= strip -r . + $ hg debugstrip -r . 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/tmpe/issue4845/doindexrev/.hg/strip-backup/9bc153528424-ee80edd4-backup.hg $ hg debugobsolete 9bc153528424ea266d13e57f9ff0d799dfe61e4b diff --git a/tests/test-phase-archived.t b/tests/test-phase-archived.t --- a/tests/test-phase-archived.t +++ b/tests/test-phase-archived.t @@ -5,8 +5,6 @@ $ cat << EOF >> $HGRCPATH > [format] > internal-phase=yes - > [extensions] - > strip= > [experimental] > EOF @@ -35,7 +33,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: root - $ hg strip --soft --rev '.' + $ hg debugstrip --soft --rev '.' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/repo/.hg/strip-backup/883aadbbf309-efc55adc-backup.hg $ hg log -G diff --git a/tests/test-phases-exchange.t b/tests/test-phases-exchange.t --- a/tests/test-phases-exchange.t +++ b/tests/test-phases-exchange.t @@ -836,7 +836,7 @@ (reset some stat on remote repo to avoid confusing other tests) - $ hg -R ../alpha --config extensions.strip= strip --no-backup 967b449fbc94 + $ hg -R ../alpha debugstrip --no-backup 967b449fbc94 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg phase --force --draft b740e3e5c05d 967b449fbc94 test-debug-phase: move rev 8: 0 -> 1 diff --git a/tests/test-phases.t b/tests/test-phases.t --- a/tests/test-phases.t +++ b/tests/test-phases.t @@ -255,7 +255,7 @@ Restore condition prior extra insertion. - $ hg -q --config extensions.mq= strip . + $ hg -q --config extensions.mq= debugstrip . $ hg up -q 7 $ cd .. diff --git a/tests/test-pull-update.t b/tests/test-pull-update.t --- a/tests/test-pull-update.t +++ b/tests/test-pull-update.t @@ -30,7 +30,7 @@ 1 local changesets published abort: uncommitted changes [255] - $ hg --config extensions.strip= strip --no-backup tip + $ hg debugstrip --no-backup tip $ hg co -qC tip Should not update to the other topological branch: diff --git a/tests/test-push-http.t b/tests/test-push-http.t --- a/tests/test-push-http.t +++ b/tests/test-push-http.t @@ -370,7 +370,7 @@ % serve errors #endif - $ hg --config extensions.strip= strip -r 1: + $ hg debugstrip -r 1: saved backup bundle to $TESTTMP/test/.hg/strip-backup/ba677d0156c1-eea704d7-backup.hg Now do a variant of the above, except on a non-publishing repository @@ -483,7 +483,7 @@ % serve errors #endif - $ hg --config extensions.strip= strip -r 1: + $ hg debugstrip -r 1: saved backup bundle to $TESTTMP/test/.hg/strip-backup/ba677d0156c1-eea704d7-backup.hg #if bundle2 diff --git a/tests/test-push.t b/tests/test-push.t --- a/tests/test-push.t +++ b/tests/test-push.t @@ -291,8 +291,8 @@ wlock: free added 1 changesets with 1 changes to 1 files - $ hg --cwd 1 --config extensions.strip= strip tip -q - $ hg --cwd 2 --config extensions.strip= strip tip -q + $ hg --cwd 1 debugstrip tip -q + $ hg --cwd 2 debugstrip tip -q $ hg --cwd 3 push ../2 # bundle2+ pushing to ../2 searching for changes diff --git a/tests/test-rebase-abort.t b/tests/test-rebase-abort.t --- a/tests/test-rebase-abort.t +++ b/tests/test-rebase-abort.t @@ -167,7 +167,7 @@ $ mv .hg/rebasestate .hg/rebasestate.back $ hg update --quiet --clean 2 - $ hg --config extensions.mq= strip --quiet "destination()" + $ hg --config extensions.mq= debugstrip --quiet "destination()" $ mv .hg/rebasestate.back .hg/rebasestate $ hg continue diff --git a/tests/test-rebase-cache.t b/tests/test-rebase-cache.t --- a/tests/test-rebase-cache.t +++ b/tests/test-rebase-cache.t @@ -268,7 +268,7 @@ Stripping multiple branches in one go bypasses the fast-case code to update the branch cache. - $ hg strip 2 + $ hg debugstrip 2 0 files updated, 0 files merged, 4 files removed, 0 files unresolved saved backup bundle to $TESTTMP/a3/.hg/strip-backup/0a03079c47fd-11b7c407-backup.hg @@ -327,7 +327,7 @@ 2: 'A' branch1 1: 'branch2' branch2 - $ hg strip 2 + $ hg debugstrip 2 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/a3/b/.hg/strip-backup/a5b4b27ed7b4-a3b6984e-backup.hg @@ -372,14 +372,14 @@ o 0: 'A' - $ hg strip 3 4 + $ hg debugstrip 3 4 0 files updated, 0 files merged, 2 files removed, 0 files unresolved saved backup bundle to $TESTTMP/a3/c/.hg/strip-backup/67a385d4e6f2-b9243789-backup.hg $ hg theads 2: 'C' - $ hg strip 2 1 + $ hg debugstrip 2 1 0 files updated, 0 files merged, 2 files removed, 0 files unresolved saved backup bundle to $TESTTMP/a3/c/.hg/strip-backup/6c81ed0049f8-a687065f-backup.hg diff --git a/tests/test-rebase-collapse.t b/tests/test-rebase-collapse.t --- a/tests/test-rebase-collapse.t +++ b/tests/test-rebase-collapse.t @@ -249,7 +249,7 @@ 575c4b5ec114d64b681d33f8792853568bfb2b2c o default 64e264db77f061f16d9132b70c5a58e2461fb630 o default - $ hg strip 4 + $ hg debugstrip 4 saved backup bundle to $TESTTMP/branch-heads/.hg/strip-backup/4e4f9194f9f1-5ec4b5e6-backup.hg $ cat $TESTTMP/branch-heads/.hg/cache/branch2-served @@ -641,7 +641,7 @@ 2:dc0947a82db884575bb76ea10ac97b08536bfa03 default: C 1:112478962961147124edd43549aedd1a335e44bf default: B - $ hg strip C + $ hg debugstrip C saved backup bundle to $TESTTMP/f/.hg/strip-backup/dc0947a82db8-d21b92a4-backup.hg $ hg tglog diff --git a/tests/test-rebase-inmemory.t b/tests/test-rebase-inmemory.t --- a/tests/test-rebase-inmemory.t +++ b/tests/test-rebase-inmemory.t @@ -6,7 +6,6 @@ > amend= > rebase= > debugdrawdag=$TESTDIR/drawdag.py - > strip= > [rebase] > experimental.inmemory=1 > [diff] @@ -517,7 +516,7 @@ $ cd .. $ hg clone repo3 repo4 -q $ cd repo4 - $ hg strip 7 -q + $ hg debugstrip 7 -q $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n" @ 6:baf10c5166d4 test | g diff --git a/tests/test-remotefilelog-bgprefetch.t b/tests/test-remotefilelog-bgprefetch.t --- a/tests/test-remotefilelog-bgprefetch.t +++ b/tests/test-remotefilelog-bgprefetch.t @@ -63,7 +63,7 @@ > pullprefetch=bookmark() > backgroundprefetch=True > EOF - $ hg strip tip + $ hg debugstrip tip saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/6b4b6f66ef8c-b4b8bdaf-backup.hg (glob) $ clearcache @@ -92,7 +92,7 @@ > [remotefilelog] > backgroundrepack=True > EOF - $ hg strip tip + $ hg debugstrip tip saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/6b4b6f66ef8c-b4b8bdaf-backup.hg (glob) $ clearcache diff --git a/tests/test-remotefilelog-bundles.t b/tests/test-remotefilelog-bundles.t --- a/tests/test-remotefilelog-bundles.t +++ b/tests/test-remotefilelog-bundles.t @@ -23,7 +23,7 @@ Unbundling a shallow bundle - $ hg strip -r 66ee28d0328c + $ hg debugstrip -r 66ee28d0328c 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg (glob) 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) @@ -39,7 +39,7 @@ $ hg -R ../master bundle -r 66ee28d0328c:: --base "66ee28d0328c^" ../fullbundle.hg 2 changesets found - $ hg strip -r 66ee28d0328c + $ hg debugstrip -r 66ee28d0328c saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg (glob) $ hg unbundle ../fullbundle.hg adding changesets @@ -51,7 +51,7 @@ Pulling from a shallow bundle - $ hg strip -r 66ee28d0328c + $ hg debugstrip -r 66ee28d0328c saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg (glob) $ hg pull -r 66ee28d0328c .hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg pulling from .hg/strip-backup/66ee28d0328c-3d7aafd1-backup.hg @@ -65,7 +65,7 @@ Pulling from a full bundle - $ hg strip -r 66ee28d0328c + $ hg debugstrip -r 66ee28d0328c saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/66ee28d0328c-b6ee89e7-backup.hg (glob) $ hg pull -r 66ee28d0328c ../fullbundle.hg pulling from ../fullbundle.hg diff --git a/tests/test-remotefilelog-linknodes.t b/tests/test-remotefilelog-linknodes.t --- a/tests/test-remotefilelog-linknodes.t +++ b/tests/test-remotefilelog-linknodes.t @@ -100,7 +100,7 @@ # system cache has invalid linknode, but .hg/store/data has valid $ cd shallow - $ hg strip -r 1 -q + $ hg debugstrip -r 1 -q $ rm -rf .hg/store/data/* $ echo x >> x $ hg commit -Aqm xx_local diff --git a/tests/test-remotefilelog-local.t b/tests/test-remotefilelog-local.t --- a/tests/test-remotefilelog-local.t +++ b/tests/test-remotefilelog-local.t @@ -83,7 +83,7 @@ # restore state for future tests - $ hg -q strip . + $ hg -q debugstrip . $ hg -q up tip # rebase @@ -113,7 +113,7 @@ $ clearcache $ hg debugrebuilddirstate # fixes dirstate non-determinism - $ hg strip -r . + $ hg debugstrip -r . 2 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/19edf50f4de7-df3d0f74-backup.hg (glob) 4 files fetched over 2 fetches - (4 misses, 0.00% hit ratio) over *s (glob) @@ -189,7 +189,7 @@ 3 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) $ hg commit -m merge - $ hg strip -q -r ".^" + $ hg debugstrip -q -r ".^" # commit without producing new node diff --git a/tests/test-remotefilelog-prefetch.t b/tests/test-remotefilelog-prefetch.t --- a/tests/test-remotefilelog-prefetch.t +++ b/tests/test-remotefilelog-prefetch.t @@ -84,7 +84,7 @@ # prefetch on pull when configured $ printf "[remotefilelog]\npullprefetch=bookmark()\n" >> .hg/hgrc - $ hg strip tip + $ hg debugstrip tip saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/109c3a557a73-3f43405e-backup.hg (glob) $ clearcache @@ -106,7 +106,7 @@ # prefetch only fetches changes not in working copy - $ hg strip tip + $ hg debugstrip tip 1 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/109c3a557a73-3f43405e-backup.hg (glob) 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) @@ -131,7 +131,7 @@ $ hg prefetch -r 'all()' 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) - $ hg strip -q -r 0 + $ hg debugstrip -q -r 0 $ echo x > x $ echo z > z $ hg commit -qAm x @@ -142,7 +142,7 @@ # prefetch server versions, even if local versions are available $ clearcache - $ hg strip -q tip + $ hg debugstrip -q tip $ hg pull pulling from ssh://user@dummy/master searching for changes diff --git a/tests/test-remotefilelog-push-pull.t b/tests/test-remotefilelog-push-pull.t --- a/tests/test-remotefilelog-push-pull.t +++ b/tests/test-remotefilelog-push-pull.t @@ -78,7 +78,7 @@ # pull from shallow to shallow (ssh) - $ hg strip -r 1 + $ hg debugstrip -r 1 saved backup bundle to $TESTTMP/shallow2/.hg/strip-backup/d34c38483be9-89d325c9-backup.hg (glob) $ hg pull ssh://user@dummy/$TESTTMP/shallow --config remotefilelog.cachepath=${CACHEDIR}2 pulling from ssh://user@dummy/$TESTTMP/shallow @@ -96,8 +96,8 @@ $ cat z z - $ hg -R ../shallow strip -qr 3 - $ hg strip -qr 3 + $ hg -R ../shallow debugstrip -qr 3 + $ hg debugstrip -qr 3 $ cd .. # push from shallow to shallow diff --git a/tests/test-remotefilelog-repack-fast.t b/tests/test-remotefilelog-repack-fast.t --- a/tests/test-remotefilelog-repack-fast.t +++ b/tests/test-remotefilelog-repack-fast.t @@ -239,10 +239,10 @@ Node P1 Node P2 Node Link Node Copy From 577959738234 1bb2e6237e03 000000000000 c7faf2fc439a x 21f46f2721e7 000000000000 000000000000 d6868642b790 - $ hg strip -r '.^' + $ hg debugstrip -r '.^' 1 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/609547eda446-b26b56a8-backup.hg (glob) - $ hg -R ../master strip -r '.^' + $ hg -R ../master debugstrip -r '.^' 1 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/master/.hg/strip-backup/609547eda446-b26b56a8-backup.hg (glob) diff --git a/tests/test-remotefilelog-repack.t b/tests/test-remotefilelog-repack.t --- a/tests/test-remotefilelog-repack.t +++ b/tests/test-remotefilelog-repack.t @@ -249,10 +249,10 @@ Node P1 Node P2 Node Link Node Copy From 577959738234 1bb2e6237e03 000000000000 c7faf2fc439a x 21f46f2721e7 000000000000 000000000000 d6868642b790 - $ hg strip -r '.^' + $ hg debugstrip -r '.^' 1 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/609547eda446-b26b56a8-backup.hg (glob) - $ hg -R ../master strip -r '.^' + $ hg -R ../master debugstrip -r '.^' 1 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/master/.hg/strip-backup/609547eda446-b26b56a8-backup.hg (glob) diff --git a/tests/test-remotefilelog-sparse.t b/tests/test-remotefilelog-sparse.t --- a/tests/test-remotefilelog-sparse.t +++ b/tests/test-remotefilelog-sparse.t @@ -46,7 +46,7 @@ # prefetch sparse only on pull when configured $ printf "[remotefilelog]\npullprefetch=bookmark()\n" >> .hg/hgrc - $ hg strip tip + $ hg debugstrip tip saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/876b1317060d-b2e91d8d-backup.hg (glob) $ hg debugsparse --delete z diff --git a/tests/test-repair-strip.t b/tests/test-repair-strip.t --- a/tests/test-repair-strip.t +++ b/tests/test-repair-strip.t @@ -15,7 +15,7 @@ > echo % before update $1, strip $2 > hg parents > chmod -$3 $4 - > hg strip $2 2>&1 | sed 's/\(bundle\).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/' + > hg debugstrip $2 2>&1 | sed 's/\(bundle\).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/' > echo % after update $1, strip $2 > chmod +$3 $4 > hg verify diff --git a/tests/test-shelve.t b/tests/test-shelve.t --- a/tests/test-shelve.t +++ b/tests/test-shelve.t @@ -149,7 +149,7 @@ cleaning the branches made for name checking tests $ hg up default -q - $ hg strip e9177275307e+6a6d231f43d+882bae7c62c2 -q + $ hg debugstrip e9177275307e+6a6d231f43d+882bae7c62c2 -q create an mq patch - shelving should work fine with a patch applied diff --git a/tests/test-shelve2.t b/tests/test-shelve2.t --- a/tests/test-shelve2.t +++ b/tests/test-shelve2.t @@ -868,7 +868,7 @@ $ cat .hg/shelved/default.shelve node=82e0cb9893247d12667017593ce1e5655860f1ac - $ hg strip --hidden --rev 82e0cb989324 --no-backup + $ hg debugstrip --hidden --rev 82e0cb989324 --no-backup $ rm .hg/shelved/default.shelve $ hg unshelve unshelving change 'default' diff --git a/tests/test-single-head.t b/tests/test-single-head.t --- a/tests/test-single-head.t +++ b/tests/test-single-head.t @@ -197,7 +197,7 @@ actual stripping - $ hg strip --config extensions.strip= --rev 'desc("c_dH0")' + $ hg debugstrip --rev 'desc("c_dH0")' saved backup bundle to $TESTTMP/client/.hg/strip-backup/fe47ea669cea-a41bf5a9-backup.hg Test that closing heads are ignored by default diff --git a/tests/test-sparse-clear.t b/tests/test-sparse-clear.t --- a/tests/test-sparse-clear.t +++ b/tests/test-sparse-clear.t @@ -6,7 +6,6 @@ > [extensions] > sparse= > purge= - > strip= > rebase= > EOF diff --git a/tests/test-sparse-clone.t b/tests/test-sparse-clone.t --- a/tests/test-sparse-clone.t +++ b/tests/test-sparse-clone.t @@ -7,7 +7,6 @@ > [extensions] > sparse= > purge= - > strip= > rebase= > EOF diff --git a/tests/test-sparse-fsmonitor.t b/tests/test-sparse-fsmonitor.t --- a/tests/test-sparse-fsmonitor.t +++ b/tests/test-sparse-fsmonitor.t @@ -9,7 +9,6 @@ $ cat > .hg/hgrc < [extensions] > sparse= - > strip= > EOF Test fsmonitor integration (if available) diff --git a/tests/test-sparse-import.t b/tests/test-sparse-import.t --- a/tests/test-sparse-import.t +++ b/tests/test-sparse-import.t @@ -6,7 +6,6 @@ > [extensions] > sparse= > purge= - > strip= > rebase= > EOF diff --git a/tests/test-sparse-merges.t b/tests/test-sparse-merges.t --- a/tests/test-sparse-merges.t +++ b/tests/test-sparse-merges.t @@ -49,7 +49,7 @@ Test merging things outside of the sparse checkout that are not in the working copy - $ hg strip -q -r . --config extensions.strip= + $ hg debugstrip -q -r . $ hg up -q feature $ touch branchonly $ hg ci -Aqm 'add branchonly' diff --git a/tests/test-sparse-profiles.t b/tests/test-sparse-profiles.t --- a/tests/test-sparse-profiles.t +++ b/tests/test-sparse-profiles.t @@ -6,7 +6,6 @@ > [extensions] > sparse= > purge= - > strip= > rebase= > EOF @@ -167,7 +166,7 @@ Verify stripping refreshes dirstate - $ hg strip -q -r . + $ hg debugstrip -q -r . $ ls backend.sparse index.html diff --git a/tests/test-sparse-verbose-json.t b/tests/test-sparse-verbose-json.t --- a/tests/test-sparse-verbose-json.t +++ b/tests/test-sparse-verbose-json.t @@ -5,7 +5,6 @@ $ cat > .hg/hgrc < [extensions] > sparse= - > strip= > EOF $ echo a > show diff --git a/tests/test-sparse.t b/tests/test-sparse.t --- a/tests/test-sparse.t +++ b/tests/test-sparse.t @@ -5,7 +5,6 @@ $ cat > .hg/hgrc < [extensions] > sparse= - > strip= > EOF $ echo a > show @@ -260,7 +259,7 @@ show2 | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) - $ hg strip -r . -k + $ hg debugstrip -r . -k saved backup bundle to $TESTTMP/myrepo/.hg/strip-backup/39278f7c08a9-ce59e002-backup.hg $ hg status M show diff --git a/tests/test-ssh-proto-unbundle.t b/tests/test-ssh-proto-unbundle.t --- a/tests/test-ssh-proto-unbundle.t +++ b/tests/test-ssh-proto-unbundle.t @@ -11,13 +11,13 @@ > tip=`hg log -r tip -T '{node}'` > echo "${commands}" | hg --verbose debugwireproto --localssh --noreadstderr > if [ -n "$1" ]; then - > hg --config extensions.strip= strip --no-backup -r "all() - ::${tip}" + > hg debugstrip --no-backup -r "all() - ::${tip}" > fi > echo "" > echo 'testing ssh2' > echo "${commands}" | HGRCPATH=$TESTTMP/hgrc-sshv2 hg --verbose debugwireproto --localssh --noreadstderr > if [ -n "$1" ]; then - > hg --config extensions.strip= strip --no-backup -r "all() - ::${tip}" + > hg debugstrip --no-backup -r "all() - ::${tip}" > fi > } diff --git a/tests/test-strip.t b/tests/test-strip.t --- a/tests/test-strip.t +++ b/tests/test-strip.t @@ -882,7 +882,7 @@ check strip behavior - $ hg --config extensions.strip= strip 'desc(commitD)' --debug + $ hg strip 'desc(commitD)' --debug resolving manifests branchmerge: False, force: True, partial: False ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71 diff --git a/tests/test-subrepo-missing.t b/tests/test-subrepo-missing.t --- a/tests/test-subrepo-missing.t +++ b/tests/test-subrepo-missing.t @@ -108,7 +108,7 @@ verify will warn if locked-in subrepo revisions are hidden or missing $ hg ci -m "amended subrepo (again)" - $ hg --config extensions.strip= --hidden strip -R subrepo -qr 'tip' --config devel.strip-obsmarkers=no + $ hg --hidden debugstrip -R subrepo -qr 'tip' --config devel.strip-obsmarkers=no $ hg verify checking changesets checking manifests diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t --- a/tests/test-subrepo.t +++ b/tests/test-subrepo.t @@ -465,11 +465,7 @@ $ hg co -C 10 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ cat >> $HGRCPATH < [extensions] - > strip= - > EOF - $ hg strip -r 11:15 + $ hg debugstrip -r 11:15 saved backup bundle to $TESTTMP/t/.hg/strip-backup/*-backup.hg (glob) clone diff --git a/tests/test-tags.t b/tests/test-tags.t --- a/tests/test-tags.t +++ b/tests/test-tags.t @@ -407,7 +407,7 @@ $ f --size .hg/cache/hgtagsfnodes1 .hg/cache/hgtagsfnodes1: size=168 - $ hg -q --config extensions.strip= strip -r 6 --no-backup + $ hg -q debugstrip -r 6 --no-backup #endif Stripping doesn't truncate the tags cache until new data is available @@ -420,7 +420,7 @@ $ f --size .hg/cache/hgtagsfnodes1 .hg/cache/hgtagsfnodes1: size=144 - $ hg -q --config extensions.strip= strip -r 5 --no-backup + $ hg -q debugstrip -r 5 --no-backup $ hg tags tip 4:0c192d7d5e6b bar 1:78391a272241 @@ -452,7 +452,7 @@ $ f --size .hg/cache/hgtagsfnodes1 .hg/cache/hgtagsfnodes1: size=144 - $ hg -q --config extensions.strip= strip -r 5 --no-backup + $ hg -q debugstrip -r 5 --no-backup Test tag removal: @@ -541,7 +541,7 @@ Strip 1: expose an old head: - $ hg --config extensions.mq= strip 5 + $ hg --config extensions.mq= debugstrip 5 saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob) $ hg tags # partly stale cache tip 5:735c3ca72986 @@ -552,7 +552,7 @@ Strip 2: destroy whole branch, no old head exposed - $ hg --config extensions.mq= strip 4 + $ hg --config extensions.mq= debugstrip 4 saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob) $ hg tags # partly stale tip 4:735c3ca72986 diff --git a/tests/test-template-map.t b/tests/test-template-map.t --- a/tests/test-template-map.t +++ b/tests/test-template-map.t @@ -294,7 +294,7 @@ Remove commit with empty commit message, so as to not pollute further tests. - $ hg --config extensions.strip= strip -q . + $ hg debugstrip -q . Revision with no copies (used to print a traceback): diff --git a/tests/test-transplant.t b/tests/test-transplant.t --- a/tests/test-transplant.t +++ b/tests/test-transplant.t @@ -647,7 +647,7 @@ test "--merge" causing pull from source repository on local host - $ hg --config extensions.mq= -q strip 2 + $ hg --config extensions.mq= -q debugstrip 2 $ hg transplant -s ../t --merge tip searching for changes searching for changes @@ -660,7 +660,7 @@ test interactive transplant - $ hg --config extensions.strip= -q strip 0 + $ hg -q debugstrip 0 $ hg -R ../t log -G --template "{rev}:{node|short}" @ 4:a53251cdf717 | diff --git a/tests/test-treemanifest.t b/tests/test-treemanifest.t --- a/tests/test-treemanifest.t +++ b/tests/test-treemanifest.t @@ -316,7 +316,7 @@ $ hg st --change tip M dir1/a - $ hg --config extensions.strip= strip tip + $ hg debugstrip tip 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/repo-mixed/.hg/strip-backup/51cfd7b1e13b-78a2f3ed-backup.hg $ hg debugindex --dir dir1 @@ -343,7 +343,7 @@ added 1 changesets with 1 changes to 1 files new changesets 51cfd7b1e13b (1 drafts) (run 'hg update' to get a working copy) - $ hg --config extensions.strip= strip tip + $ hg debugstrip tip saved backup bundle to $TESTTMP/repo-mixed/.hg/strip-backup/*-backup.hg (glob) $ hg unbundle -q .hg/strip-backup/* $ hg debugindex --dir dir1 @@ -897,4 +897,4 @@ $ hg log -r 'tip + tip^' -T '{manifest}\n' 1:678d3574b88c 1:678d3574b88c - $ hg --config extensions.strip= strip -r . -q + $ hg debugstrip -r . -q diff --git a/tests/testlib/exchange-obsmarker-util.sh b/tests/testlib/exchange-obsmarker-util.sh --- a/tests/testlib/exchange-obsmarker-util.sh +++ b/tests/testlib/exchange-obsmarker-util.sh @@ -28,10 +28,6 @@ # enable evolution evolution=true -[extensions] -# we need to strip some changeset for some test cases -hgext.strip= - [devel] strip-obsmarkers = no diff --git a/tests/testlib/push-checkheads-util.sh b/tests/testlib/push-checkheads-util.sh --- a/tests/testlib/push-checkheads-util.sh +++ b/tests/testlib/push-checkheads-util.sh @@ -9,10 +9,6 @@ # non publishing server publish=False -[extensions] -# we need to strip some changeset for some test cases -strip= - [experimental] # enable evolution evolution=all