sapling/mercurial
Jun Wu 973c4f76d4 rebase: initial support for multiple destinations
This patch defines `SRC` (a single source revision) and `ALLSRC` (all source
revisions) to be valid names in  `--dest` revset if `--src` or `--rev` is
used. So destination could be defined differently according to source
revisions. The names are capitalized to make it clear they are "dynamically
defined", distinguishable from normal revsets (Thanks Augie for the
suggestion).

This is useful, for example, `-r 'orphan()' -d 'calc-dest(SRC)'` to solve
instability, which seems to be a highly wanted feature.

The feature is not completed, namely if `-d` overlaps with `-r`, things
could go wrong. A later patch will handle that case.

The feature is also gated by `experimental.rebase.multidest` config option
which is default off.

Differential Revision: https://phab.mercurial-scm.org/D469
2017-08-29 17:27:37 -07:00
..
cext encoding: add fast path of jsonescape() (issue5533) 2017-04-23 14:47:52 +09:00
cffi policy: reroute proxy modules internally 2017-07-31 23:40:36 +09: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 sparse: add a requirement when a repository uses sparse (BC) 2017-07-17 11:45:38 -07:00
hgweb revset: pass repo when passing ui 2017-07-15 15:51:57 -07:00
httpclient httpclient: update to 54868ef054d2 of httpplus 2016-06-27 11:53:50 -04:00
pure encoding: drop circular import by proxying through '<policy>.charencode' 2017-07-31 23:13:47 +09:00
templates gitweb: preserve whitespace in description 2017-07-17 15:54:15 -07:00
__init__.py selector2: vendor selector2 library 2017-07-14 20:19:46 -07:00
ancestor.py py3: add __bool__ to every class defining __nonzero__ 2017-03-13 12:40:14 -07:00
archival.py archive: add an experimental config to control the metadata file template 2017-07-17 00:49:29 -04:00
bdiff.c bdiff: don't check border condition in loop 2016-11-20 16:56:21 -08:00
bdiff.h bdiff: split bdiff into cpy-aware and cpy-agnostic part 2016-07-13 10:46:26 +02:00
bitmanipulation.h internals: move the bitmanipulation routines into its own file 2016-06-06 13:08:13 +02:00
bookmarks.py bookmark: deprecate direct del of a bookmark value 2017-07-10 21:49:37 +02:00
branchmap.py branchmap: revert a81106261d38 for Python 2.7 compatibility 2017-08-10 20:47:19 -07:00
bundle2.py transaction-summary: display the summary for all transactions 2017-07-16 02:20:06 +02:00
bundlerepo.py bundlerepo: move bundle2 part handling out to a function 2017-08-23 12:35:03 -07:00
byterange.py pycompat: switch to util.urlreq/util.urlerr for py3 compat 2016-04-06 23:22:12 +00:00
changegroup.py changegroup: more **kwargs 2017-07-24 11:28:59 -04:00
changelog.py changelog: abort on attempt to write wdir revision 2017-08-25 22:05:10 -07:00
chgserver.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
cmdutil.py morestatus: simplify check for unresolved merge conflicts 2017-08-28 14:47:18 -07:00
color.py color: remove warnings if term is not formatted (==dumb or !ui.formatted()) 2017-08-03 12:40:48 -07:00
commands.py pull: do not prompt "hg update" if update.requiredest is set 2017-08-24 20:25:16 -07:00
commandserver.py commandserver: do not handle EINTR for selector.select 2017-07-16 11:17:00 -07:00
compat.h encoding: add function to test if a str consists of ASCII characters 2017-04-23 12:59:42 +09:00
config.py ui: move configlist parser to config.py 2017-03-17 09:19:56 -07:00
configitems.py rebase: initial support for multiple destinations 2017-08-29 17:27:37 -07:00
context.py metadataonlyctx: don't crash when reusing the manifest with deletions 2017-08-28 16:58:59 -07:00
copies.py copies: fix misaligned lines 2017-08-22 16:16:39 +02:00
crecord.py record: make the m key open an editor for the commit message (issue5667) 2017-08-28 13:43:31 +02:00
dagop.py followlines: join merge parents line ranges in blockdescendants() (issue5595) 2017-07-05 13:54:53 +02:00
dagparser.py dagparser: make print statement in doctest Py3 portable 2017-06-15 13:32:02 -04:00
dagutil.py dagutil: use absolute_import 2015-08-08 19:04:09 -07:00
debugcommands.py win32: copy-edit debugssl messages to match prevailing style 2017-07-17 13:22:59 -05:00
destutil.py show: implement "stack" view 2017-07-01 22:38:42 -07:00
dirstate.py dirstate: perform transactions with _copymap using single call, where possible 2017-08-23 18:24:57 +00:00
dirstateguard.py util: add base class for transactional context managers 2017-07-28 22:42:10 -07:00
discovery.py discovery: prevent crash caused by prune marker having no parent data 2017-04-19 23:10:05 +09:00
dispatch.py ui: enable pager always for explicit --pager=on (issue5580) 2017-08-01 18:52:52 +09:00
dummycert.pem
encoding.py encoding: add fast path of from/toutf8b() for ASCII strings 2017-04-23 13:08:58 +09:00
error.py error: rename RichIOError to PeerTransportError 2017-04-16 11:12:37 -07:00
exchange.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
exewrapper.c exewrapper: add .dll to LoadLibrary() argument 2016-04-27 09:23:39 -07:00
extensions.py color: drop the now useless color extension 2017-07-15 14:17:35 +02:00
fancyopts.py py3: slice over bytes to prevent getting it's ascii value 2017-06-25 08:36:51 +05:30
filelog.py revlog: merge hash checking subfunctions 2016-12-13 14:21:36 +00:00
filemerge.py configitems: register the 'ui.mergemarkertemplate' config 2017-06-30 03:44:56 +02:00
fileset.py help: clarify quotes are needed for filesets.size expressions 2016-09-21 16:33:37 +00:00
formatter.py formatter: proxy fm.context() through converter 2017-06-26 09:33:01 +09:00
graphmod.py log: add a "graphwidth" template variable 2017-08-15 10:15:31 -07:00
hbisect.py bisect: move check_state into the bisect module 2016-08-24 04:25:20 +02:00
help.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
hg.py py3: use bytes IO to write sample hgrc 2017-08-03 00:45:02 +09:00
hook.py py3: convert keys of kwargs back to bytes using pycompat.byteskwargs() 2017-06-17 15:29:26 +05:30
httpconnection.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
httppeer.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
i18n.py i18n: make the locale directory name the same string type as the datapath 2016-10-08 05:26:18 -04:00
keepalive.py keepalive: send HTTP request headers in a deterministic order 2017-04-13 18:04:38 -07:00
localrepo.py pathauditor: disable cache of audited paths by default (issue5628) 2017-07-26 22:10:15 +09:00
lock.py lock: avoid unintentional lock acquisition at failure of readlock 2017-05-01 19:59:13 +09:00
lsprof.py lsprof: use print function 2016-01-02 11:40:53 -08:00
lsprofcalltree.py lsprofcalltree: use print function 2016-01-02 11:45:29 -08:00
mail.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
manifest.py manifest: apply checkambig=True only for root 00manifest.i 2017-06-30 01:47:48 +09:00
match.py match: override visitdir() in nevermatcher to return False 2017-07-19 14:50:50 -07:00
mdiff.py py3: use pycompat.strkwargs() to convert kwargs keys to str 2017-06-27 00:23:32 +05:30
merge.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
mergeutil.py checkunresolved: move to new package to help avoid import cycles 2016-11-21 21:31:45 -05:00
minirst.py help: search section of help topic by translated section name correctly 2016-05-13 07:19:59 +09:00
mpatch.c internals: move the bitmanipulation routines into its own file 2016-06-06 13:08:13 +02:00
mpatch.h mpatch: raise MemoryError instead of mpatchError if lalloc() failed 2016-08-07 10:06:56 +09:00
namespaces.py namespaces: record and expose whether namespace is built-in 2017-06-24 14:52:15 -07:00
node.py node: use byte literals to construct nullid and wdirid 2016-03-12 14:04:57 -08:00
obsolete.py obsolete: rename bumped volatile set into phasedivergent volatile set 2017-08-04 19:39:34 +02:00
obsutil.py template: better prune support in obsfate 2017-07-03 17:38:56 +02:00
parser.py parser: preserve order of keyword arguments 2017-04-09 11:58:27 +09:00
patch.py record: fix revert -i for lines without newline (issue5651) 2017-08-27 13:39:17 -07:00
pathutil.py pathauditor: disable cache of audited paths by default (issue5628) 2017-07-26 22:10:15 +09:00
peer.py wireproto: use new peer interface 2017-08-10 20:58:28 -07:00
phases.py phases: remove trace of addednodes in the 'phase-heads' handling 2017-07-13 21:10:55 +02:00
policy.py encoding: add fast path of jsonescape() (issue5533) 2017-04-23 14:47:52 +09:00
posix.py ssh: quote parameters using shellquote (SEC) 2017-08-04 23:54:12 -07:00
profiling.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
progress.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
pushkey.py pushkey: use absolute_import 2015-08-08 19:57:27 -07:00
pvec.py base85: proxy through util module 2017-04-26 21:56:47 +09:00
pycompat.py util: fix sortdict.update() to call __setitem__() on PyPy (issue5639) 2017-08-02 22:51:19 +09:00
rcutil.py pager: use less as a fallback on Unix 2017-04-28 20:51:14 +09:00
registrar.py filemerge: move decorator definition for internal merge tools to registrar 2017-08-06 01:13:57 +09:00
repair.py repair: move manifest strip to a separate function 2017-08-08 17:25:38 -07:00
repository.py repository: formalize wire protocol interface 2017-08-13 11:04:42 -07:00
repoview.py cleanup: replace uses of util.(md5|sha1|sha256|sha512) with hashlib.\1 2016-06-10 00:12:33 -04:00
revlog.py revlog: abort on attempt to write null revision 2017-08-25 15:50:07 -07:00
revset.py revset: mark evolution-related revsets as experimental 2017-08-16 16:48:41 +02:00
revsetlang.py revset: add experimental relation and subscript operators 2017-07-08 13:07:59 +09:00
scmposix.py pager: use less as a fallback on Unix 2017-04-28 20:51:14 +09:00
scmutil.py rebase: initial support for multiple destinations 2017-08-29 17:27:37 -07:00
scmwindows.py pager: use less as a fallback on Unix 2017-04-28 20:51:14 +09:00
selectors2.py selector2: vendor selector2 library 2017-07-14 20:19:46 -07:00
server.py serve: add support for Mercurial subrepositories 2017-04-15 18:05:40 -04:00
setdiscovery.py setdiscovery: use iterbatch interface instead of batch 2016-03-01 17:44:41 -05:00
similar.py similar: remove caching from the module level 2017-01-13 11:42:36 -08:00
simplemerge.py simplemerge: refactor _picklabels to be more compact 2017-08-25 13:49:17 -07:00
smartset.py smartset: fix generatorset.last() to not return the first element (issue5609) 2017-06-27 23:50:22 +09:00
sparse.py sparse: add a requirement when a repository uses sparse (BC) 2017-07-17 11:45:38 -07:00
sshpeer.py ssh: quote parameters using shellquote (SEC) 2017-08-04 23:54:12 -07:00
sshserver.py wireproto: compress data from a generator 2016-10-16 11:10:21 -07:00
sslutil.py sslutil: inform the user about how to fix an incomplete certificate chain 2017-07-12 18:37:13 -04:00
statichttprepo.py statichttprepo: implement wlock() (issue5613) 2017-07-29 12:50:56 -07:00
statprof.py statprof: require input file 2017-01-18 22:45:07 -08:00
store.py vfs: rename auditvfs to proxyvfs 2017-07-07 23:40:00 +09:00
streamclone.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
subrepo.py subrepo: add tests for svn rogue ssh urls (SEC) 2017-07-31 16:44:17 -07:00
tagmerge.py tagmerge: use workingfilectx to write merged tags 2017-07-11 16:48:15 -07:00
tags.py cachevfs: migration the tags fnode cache to 'cachevfs' 2017-07-15 23:30:25 +02:00
templatefilters.py templatefilters: fix crash by string formatting of '{x|splitlines}' 2017-04-15 10:51:17 +09:00
templatekw.py templatekw: choose {latesttag} by len(changes), not date (issue5659) 2017-08-15 23:23:55 -07:00
templater.py template: compute dates in obsfatedate 2017-07-03 15:34:10 +02:00
transaction.py util: add base class for transactional context managers 2017-07-28 22:42:10 -07:00
treediscovery.py error: get Abort from 'error' instead of 'util' 2015-10-08 12:55:45 -07:00
txnutil.py
ui.py ui: restore behavior to ignore some I/O errors (issue5658) 2017-08-15 13:04:31 -07:00
unionrepo.py configitems: register the 'bundle.mainreporoot' config 2017-06-30 03:31:26 +02:00
upgrade.py codemod: simplify nested withs 2017-07-13 18:31:35 -07:00
url.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
util.py util: use ~ as a suffix for a temp file in the same directory as a source file 2017-08-22 00:38:38 +00:00
verify.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
vfs.py pathauditor: disable cache of audited paths by default (issue5628) 2017-07-26 22:10:15 +09:00
win32.py win32: work around a WinError problem handling HRESULT types 2017-03-30 00:33:00 -04:00
windows.py ssh: quote parameters using shellquote (SEC) 2017-08-04 23:54:12 -07:00
wireproto.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
worker.py worker: propagate exit code to main process 2017-04-15 13:27:44 +09:00