From patchwork Thu Dec 7 21:29:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D1232: rebase: add the --inmemory option flag; assign a wctx object for the rebase From: phabricator X-Patchwork-Id: 26030 Message-Id: <728d89f90ed55571795c670b74790358@localhost.localdomain> To: mercurial-devel@mercurial-scm.org Date: Thu, 7 Dec 2017 21:29:26 +0000 phillco updated this revision to Diff 4196. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1232?vs=4178&id=4196 REVISION DETAIL https://phab.mercurial-scm.org/D1232 AFFECTED FILES hgext/rebase.py CHANGE DETAILS To: phillco, #hg-reviewers, dlax Cc: durin42, dlax, mercurial-devel diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -179,6 +179,7 @@ self.keepopen = opts.get('keepopen', False) self.obsoletenotrebased = {} self.obsoletewithoutsuccessorindestination = set() + self.inmemory = opts.get('inmemory', False) @property def repo(self): @@ -383,6 +384,12 @@ def _performrebase(self, tr): repo, ui = self.repo, self.ui + # Assign a working copy object. + if self.inmemory: + from mercurial.context import overlayworkingctx + self.wctx = overlayworkingctx(self.repo) + else: + self.wctx = self.repo[None] if self.keepbranchesf: # insert _savebranch at the start of extrafns so if # there's a user-provided extrafn it can clobber branch if @@ -608,6 +615,7 @@ ('i', 'interactive', False, _('(DEPRECATED)')), ('t', 'tool', '', _('specify merge tool')), ('c', 'continue', False, _('continue an interrupted rebase')), + ('', 'inmemory', False, _('run rebase in-memory (EXPERIMENTAL)')), ('a', 'abort', False, _('abort an interrupted rebase'))] + cmdutil.formatteropts, _('[-s REV | -b REV] [-d REV] [OPTION]')) @@ -726,6 +734,8 @@ """ opts = pycompat.byteskwargs(opts) + if 'inmemory' not in opts: + opts['inmemory'] = False rbsrt = rebaseruntime(repo, ui, opts) with repo.wlock(), repo.lock():