On 21/03/2017 22:03, Jun Wu wrote: > Excerpts from Augie Fackler's message of 2017-03-21 17:58:54 -0400: >> On Sat, Mar 11, 2017 at 01:00:22PM -0800, Kostia Balytskyi wrote: >>> # HG changeset patch >>> # User Kostia Balytskyi <ikos...@fb.com> >>> # Date 1489191523 28800 >>> # Fri Mar 10 16:18:43 2017 -0800 >>> # Node ID 8063b183d2396f14093ebe84da9cedf17b13881d >>> # Parent 13c8fb8e722fd0563a83e601bb784694535268f1 >>> shelve: rename stripnodes to nodestoprune >> I (sadly) found some things I at least need answered in later patches, >> but the first three patches are queued. Thanks! >> >> One thing I didn't ask elsewhere but that might be worth exploring is >> how this series can/should interact with the safecleanupnode() work >> junw did over in histedit. It feels at least vaguely related. > I think we want to move the "strip nodes, optionally write obs markers" > logic to core. It will simplify code and make it easier to migrate to > root-based hidden w/o obsstore.
Makes sense. Please see patch "[PATCH RFC] repo: add an ability to hide nodes in an appropriate way". > >>> Since we are introducing obs-based shelve, we are no longer >>> stripping temporary nodes, we are obsoleting them. Therefore >>> it looks like stipnodes would be a misleading name, while >>> prune has a connotaion of "strip but with obsolescense", so >>> nodestoprune seems like a good rename. >>> >>> diff --git a/hgext/shelve.py b/hgext/shelve.py >>> --- a/hgext/shelve.py >>> +++ b/hgext/shelve.py >>> @@ -184,7 +184,7 @@ class shelvedstate(object): >>> wctx = nodemod.bin(fp.readline().strip()) >>> pendingctx = nodemod.bin(fp.readline().strip()) >>> parents = [nodemod.bin(h) for h in fp.readline().split()] >>> - stripnodes = [nodemod.bin(h) for h in fp.readline().split()] >>> + nodestoprune = [nodemod.bin(h) for h in fp.readline().split()] >>> branchtorestore = fp.readline().strip() >>> keep = fp.readline().strip() == cls._keep >>> except (ValueError, TypeError) as err: >>> @@ -198,7 +198,7 @@ class shelvedstate(object): >>> obj.wctx = repo[wctx] >>> obj.pendingctx = repo[pendingctx] >>> obj.parents = parents >>> - obj.stripnodes = stripnodes >>> + obj.nodestoprune = nodestoprune >>> obj.branchtorestore = branchtorestore >>> obj.keep = keep >>> except error.RepoLookupError as err: >>> @@ -207,7 +207,7 @@ class shelvedstate(object): >>> return obj >>> >>> @classmethod >>> - def save(cls, repo, name, originalwctx, pendingctx, stripnodes, >>> + def save(cls, repo, name, originalwctx, pendingctx, nodestoprune, >>> branchtorestore, keep=False): >>> fp = repo.vfs(cls._filename, 'wb') >>> fp.write('%i\n' % cls._version) >>> @@ -217,7 +217,7 @@ class shelvedstate(object): >>> fp.write('%s\n' % >>> ' '.join([nodemod.hex(p) for p in >>> repo.dirstate.parents()])) >>> fp.write('%s\n' % >>> - ' '.join([nodemod.hex(n) for n in stripnodes])) >>> + ' '.join([nodemod.hex(n) for n in nodestoprune])) >>> fp.write('%s\n' % branchtorestore) >>> fp.write('%s\n' % (cls._keep if keep else cls._nokeep)) >>> fp.close() >>> @@ -569,7 +569,7 @@ def unshelveabort(ui, repo, state, opts) >>> raise >>> >>> mergefiles(ui, repo, state.wctx, state.pendingctx) >>> - repair.strip(ui, repo, state.stripnodes, backup=False, >>> + repair.strip(ui, repo, state.nodestoprune, backup=False, >>> topic='shelve') >>> finally: >>> shelvedstate.clear(repo) >>> @@ -642,12 +642,12 @@ def unshelvecontinue(ui, repo, state, op >>> shelvectx = state.pendingctx >>> else: >>> # only strip the shelvectx if the rebase produced it >>> - state.stripnodes.append(shelvectx.node()) >>> + state.nodestoprune.append(shelvectx.node()) >>> >>> mergefiles(ui, repo, state.wctx, shelvectx) >>> restorebranch(ui, repo, state.branchtorestore) >>> >>> - repair.strip(ui, repo, state.stripnodes, backup=False, >>> topic='shelve') >>> + repair.strip(ui, repo, state.nodestoprune, backup=False, >>> topic='shelve') >>> shelvedstate.clear(repo) >>> unshelvecleanup(ui, repo, state.name, opts) >>> ui.status(_("unshelve of '%s' complete\n") % state.name) >>> @@ -699,9 +699,9 @@ def _rebaserestoredcommit(ui, repo, opts >>> except error.InterventionRequired: >>> tr.close() >>> >>> - stripnodes = [repo.changelog.node(rev) >>> - for rev in xrange(oldtiprev, len(repo))] >>> - shelvedstate.save(repo, basename, pctx, tmpwctx, stripnodes, >>> + nodestoprune = [repo.changelog.node(rev) >>> + for rev in xrange(oldtiprev, len(repo))] >>> + shelvedstate.save(repo, basename, pctx, tmpwctx, nodestoprune, >>> branchtorestore, opts.get('keep')) >>> >>> util.rename(repo.join('rebasestate'), >>> _______________________________________________ >>> Mercurial-devel mailing list >>> Mercurial-devel@mercurial-scm.org >>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@mercurial-scm.org > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel > _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel