sapling/mercurial
Phil Cohen cb90ed6abe rebase: allow the working copy to be rebased with IMM
Summary:
After testing locally, I couldn't conclusively prove if rebasing a single change with IMM was any faster or slower than on disk.

Using IMM on the working copy will definitely be better for rebasing stacks, and it's just nicer to not have the working copy thrash around as much. It also might be interesting to (possibly) let you work while the rebase is running, too.* So I've added the code that will let us enable this more widely (as a subset of IMM) to experiment.

*I've made it so that if you make any changes during the rebase (causing the last update to fail), we just print a nice message telling you to checkout the new rebased working copy commit, instead of failing/aborting. TBD whether this is something we want to encourage people to do, however. I've kept the existing up-front check for uncommited changes when rebasing the WCP with IMM for now.

Reviewed By: DurhamG

Differential Revision: D7051282

fbshipit-source-id: c04302539021f481c17e47c23d3f4d8b3ed59db6
2018-04-13 21:51:43 -07:00
..
cext xdiff: enable indent heuristic 2018-04-13 21:51:21 -07:00
cffi codemod: use pycompat.isdarwin 2017-10-12 23:34:34 -07:00
default.d mergetools.rc: find OSX FileMerge in the new location inside Xcode 4.3 2015-10-16 11:37:34 +02:00
help progress: add fancyrenderer for colorful progress bars 2018-04-13 21:51:34 -07:00
hgweb hg: make file view in hgweb working 2018-04-13 21:51:10 -07:00
httpclient codemod: use single blank line 2018-04-13 21:51:08 -07:00
pure flake8: enable F821 check 2018-04-13 21:51:09 -07:00
rust build: build Rust matcher 2018-04-13 21:51:40 -07:00
templates hgweb: stop using HTML comments in <script> 2017-12-15 12:15:58 +08:00
thirdparty codemod: use single blank line 2018-04-13 21:51:08 -07:00
__init__.py thirdparty: move selectors2 module to where it should be 2017-11-30 22:43:03 +09:00
ancestor.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
archival.py archiving: use new-style progress bars 2018-04-13 21:51:32 -07:00
bdiff.c bdiff: remove trailing newlines 2017-10-04 10:51:39 -04:00
bdiff.h bdiff: include compat.h in header to define ssize_t 2017-10-13 22:38:24 +09:00
bitmanipulation.h fix undefined behavior in bitmanipulation.h 2018-04-13 21:51:13 -07:00
bookmarks.py bookmark: add methods to binary encode and decode bookmark values 2017-10-15 14:59:55 +02:00
branchmap.py branchmap: remove superfluous pass statements 2017-09-30 07:42:59 -04:00
bundle2.py hg: move bundle2 error part creation to a helper 2018-04-13 21:51:41 -07:00
bundlerepo.py hg: allow writing to inmemory packs on bundlerepo 2018-04-13 21:51:29 -07:00
byterange.py codemod: use single blank line 2018-04-13 21:51:08 -07:00
changegroup.py changegroup: use new-style progress bars 2018-04-13 21:51:32 -07:00
changelog.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
chgserver.py chgserver: import sys module 2018-01-03 05:35:56 -08:00
cmdutil.py rebase: allow the working copy to be rebased with IMM 2018-04-13 21:51:43 -07:00
color.py colors: improve compatibility 2018-04-13 21:51:40 -07:00
commands.py hg: add --configfile global option 2018-04-13 21:51:31 -07:00
commandserver.py commandserver: unblock SIGCHLD 2018-01-03 05:35:56 -08:00
compat.h compatibility: fix core mpatch.h and compat.h 2018-04-13 21:51:24 -07:00
config.py ignore all errors when including config file 2018-04-13 21:51:14 -07:00
configitems.py progress: add fancyrenderer for colorful progress bars 2018-04-13 21:51:34 -07:00
context.py overlayworkingfilectx: properly rebase flag-only changes 2018-04-13 21:51:41 -07:00
copies.py copies: group wdir-handling in one place 2017-12-14 00:25:03 -08:00
crecord.py crecord: suspend progress bar when displaying the curses interface 2018-04-13 21:51:38 -07:00
dagop.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
dagparser.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
dagutil.py codemod: use single blank line 2018-04-13 21:51:08 -07:00
debugcommands.py progress: implement formatting of bytes values 2018-04-13 21:51:38 -07:00
destutil.py show: implement "stack" view 2017-07-01 22:38:42 -07:00
dirstate.py dirstate: respect gitignore 2018-04-13 21:51:40 -07:00
dirstateguard.py dirstate: update backup functions to take full backup filename 2017-07-12 15:24:07 -07:00
discovery.py push: restrict common discovery to the pushed set 2017-12-06 23:33:01 +01:00
dispatch.py hg: add --configfile global option 2018-04-13 21:51:31 -07:00
drawdag.py obsolete: copy obsmarkers from old commits automatically 2018-04-13 21:51:23 -07:00
dummycert.pem ssl: on OS X, use a dummy cert to trick Python/OpenSSL to use system CA certs 2014-09-26 02:19:48 +02:00
encoding.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
error.py rebase: allow the working copy to be rebased with IMM 2018-04-13 21:51:43 -07:00
exchange.py hg: pass the bundle2 caps down to the changegroup packer 2018-04-13 21:51:30 -07:00
exewrapper.c exewrapper: format with clang-format 2017-10-04 11:04:18 -04:00
extensions.py buck: fix tests with opt build 2018-04-13 21:51:09 -07:00
fancyopts.py fancyopts: add early-options parser compatible with getopt() 2017-11-23 22:04:53 +09:00
filelog.py python3: replace sorted(<dict>.iterkeys()) with sorted(<dict>) 2017-08-22 20:06:58 -04:00
filemerge.py merge: use relative path names 2018-04-13 21:51:14 -07:00
fileset.py hg: fix check execute 2018-04-13 21:50:57 -07:00
formatter.py templater: load aliases from [templatealias] section in map file 2017-10-14 18:06:42 +09:00
graphmod.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
hbisect.py revert bisect change 2018-04-13 21:51:23 -07:00
help.py help: refactor to allow for patching 2018-04-13 21:51:37 -07:00
hg.py hg: use new-style progress bars for copystore 2018-04-13 21:51:31 -07:00
hook.py py3: handle keyword arguments correctly in hook.py 2017-12-10 04:46:50 +05:30
httpconnection.py httpconnection: remove old-style progress bar 2018-04-13 21:51:33 -07:00
httppeer.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
i18n.py i18n: cache translated messages per encoding 2017-10-13 21:36:10 +09:00
interpreter.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
keepalive.py codemod: use single blank line 2018-04-13 21:51:08 -07:00
localrepo.py add subclass for AbandonedTransactionFoundError 2018-04-13 21:51:36 -07:00
lock.py lock: allow to configure when the lock messages are displayed 2017-11-29 20:39:59 -05:00
logexchange.py remotenames: rename related file and storage dir to logexchange 2017-12-07 00:26:45 +05:30
lsprof.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
lsprofcalltree.py lsprofcalltree: use print function 2016-01-02 11:45:29 -08:00
mail.py py3: make sure the first argument of time.strftime() is str 2017-11-29 08:44:06 +05:30
main.py buck: fix tests with opt build 2018-04-13 21:51:09 -07:00
manifest.py hg: store repo on manifestlog instead of changelog 2018-04-13 21:51:35 -07:00
match.py dirstate: respect gitignore 2018-04-13 21:51:40 -07:00
mdiff.py mdiff: use xdiff for diff calculation 2018-04-13 21:51:21 -07:00
merge.py merge: use new-style progress bars 2018-04-13 21:51:32 -07:00
mergeutil.py checkunresolved: move to new package to help avoid import cycles 2016-11-21 21:31:45 -05:00
minirst.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
mpatch.c mpatch: switch alignment of wrapped line from tab to spaces with clang-format 2017-10-04 11:00:04 -04:00
mpatch.h compatibility: fix core mpatch.h and compat.h 2018-04-13 21:51:24 -07:00
namespaces.py log: translate column labels at once (issue5750) 2017-12-02 16:29:49 +09:00
node.py node: use byte literals to construct nullid and wdirid 2016-03-12 14:04:57 -08:00
obsolete.py obsolete: covert obsolete relation to a list before processing 2018-04-13 21:51:23 -07:00
obsutil.py perftweaks: move effectflag removal logic to core 2018-04-13 21:50:52 -07:00
parser.py doctest: use print_function and convert bytes to unicode where needed 2017-09-03 14:56:31 +09:00
patch.py patch: disable worddiff if HGPLAIN is set or color is disabled 2018-04-13 21:51:31 -07:00
pathutil.py pathutil: add doctests for canonpath() 2017-11-03 22:22:50 -04:00
peer.py peer: ensure command names are always ascii bytestrs 2017-10-15 00:05:00 -04:00
phases.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
policy.py osutil: add a function to unblock signals 2018-01-03 05:35:56 -08:00
posix.py flake8: resolve some F checks 2018-04-13 21:51:09 -07:00
profiling.py configitems: register the 'profiling.type' config 2017-06-30 03:44:00 +02:00
progress.py progress: implement formatting of bytes values 2018-04-13 21:51:38 -07:00
pushkey.py Preserve order of revisions after hg pullbackup 2018-04-13 21:51:05 -07:00
pvec.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
pycompat.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
rcutil.py codemod: use pycompat.iswindows 2017-10-12 23:30:46 -07:00
registrar.py registrar: don't i18n ProgrammingError message 2017-10-18 22:10:08 -07:00
repair.py repair: use new-style progress bars 2018-04-13 21:51:32 -07:00
repository.py repository: formalize wire protocol interface 2017-08-13 11:04:42 -07:00
repoview.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
revlog.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
revset.py codemod: use single blank line 2018-04-13 21:51:08 -07:00
revsetlang.py revsetlang: add a hint for more useful parse errors 2018-04-13 21:51:30 -07:00
rewriteutil.py rewriteutil: add a precheck function to check if revs can be rewritten 2017-11-24 03:44:50 +05:30
scmposix.py codemod: use pycompat.isdarwin 2017-10-12 23:34:34 -07:00
scmutil.py Fix typos ("and and" -> "and") 2018-04-13 21:51:19 -07:00
scmwindows.py pager: use less as a fallback on Unix 2017-04-28 20:51:14 +09:00
server.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
setdiscovery.py setdiscovery: use new-style progress bars 2018-04-13 21:51:32 -07:00
similar.py similar: use new-style progress bars 2018-04-13 21:51:32 -07:00
simplemerge.py rebase: tactical fix for rebase dropping flags 2018-04-13 21:51:16 -07:00
smartset.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
sparse.py merge: add merge action 'pr' to rename files during update 2017-10-02 14:05:30 -07:00
sshpeer.py sshpeer: allow for additional environment passing to ssh exe 2017-12-14 14:31:57 +00:00
sshserver.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
sslutil.py py3: handle keyword arguments correctly in sslutil.py 2017-12-10 04:48:59 +05:30
statichttprepo.py statichttprepo: do not use platform path separator to build a URL 2017-10-28 17:23:52 +09:00
statprof.py flake8: enable some E checks 2018-04-13 21:51:09 -07:00
store.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
streamclone.py progress: implement formatting of bytes values 2018-04-13 21:51:38 -07:00
subrepo.py subrepo: use new-style progress bars 2018-04-13 21:51:32 -07:00
tagmerge.py hgext: use relative imports wherever possible 2018-04-13 21:50:56 -07:00
tags.py codemod: use single blank line 2018-04-13 21:51:08 -07:00
templatefilters.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
templatekw.py log: translate column labels at once (issue5750) 2017-12-02 16:29:49 +09:00
templater.py templater: provide hint for templates with parse errors 2018-04-13 21:51:30 -07:00
transaction.py codemod: use single blank line 2018-04-13 21:51:08 -07:00
treediscovery.py treediscovery: use new-style progress bars 2018-04-13 21:51:32 -07:00
txnutil.py txnutil: factor out the logic to read file in according to HG_PENDING 2017-02-21 01:20:59 +09:00
ui.py ui: suspend progress bars when prompting the user 2018-04-13 21:51:37 -07:00
unionrepo.py revlog: update signature of dummy addgroup() in bundlerepo and unionrepo 2017-09-15 23:58:45 +09:00
upgrade.py upgrade: use new-style progress bars 2018-04-13 21:51:32 -07:00
url.py lfs: add git to the User-Agent header for blob transfers 2017-12-14 13:04:08 -05:00
urllibcompat.py urllibcompat: move some adapters from pycompat to urllibcompat 2017-10-04 11:58:00 -04:00
util.py util: add util.ring, a ringbuffer of fixed length 2018-04-13 21:51:34 -07:00
verify.py verify: use new-style progress bars 2018-04-13 21:51:33 -07:00
vfs.py rebase: tactical fix for rebase dropping flags 2018-04-13 21:51:16 -07:00
win32.py flake8: enable F821 check 2018-04-13 21:51:09 -07:00
windows.py ssh: quote parameters using shellquote (SEC) 2017-08-04 23:54:12 -07:00
wireproto.py hg: move bundle2 error part creation to a helper 2018-04-13 21:51:41 -07:00
worker.py worker: handle interrupt on windows 2017-12-18 15:18:37 -08:00