--- a/hgext/rebase.py Fri Dec 01 00:07:23 2017 -0800
+++ b/hgext/rebase.py Fri Oct 13 14:08:14 2017 -0700
@@ -643,6 +643,11 @@
4. If you do not specify any of ``--rev``, ``source``, or ``--base``,
rebase will use ``--base .`` as above.
+ If ``--source`` or ``--rev`` is used, special names ``SRC`` and ``ALLSRC``
+ can be used in ``--dest``. Destination would be calculated per source
+ revision with ``SRC`` substituted by that single source revision and
+ ``ALLSRC`` substituted by all source revisions.
+
Rebase will destroy original changesets unless you use ``--keep``.
It will also move your bookmarks (even if you do).
@@ -691,6 +696,12 @@
hg rebase -r "branch(featureX)" -d 1.3 --keepbranches
+ - stabilize orphaned changesets so history looks linear::
+
+ hg rebase -r 'orphan()-obsolete()'\
+ -d 'first(max((successors(max(roots(ALLSRC) & ::SRC)^)-obsolete())::) +\
+ max(::((roots(ALLSRC) & ::SRC)^)-obsolete()))'
+
Configuration Options:
You can make rebase require a destination if you set the following config
@@ -884,8 +895,6 @@
# fast path: try to resolve dest without SRC alias
dest = scmutil.revsingle(repo, destf, localalias=alias)
except error.RepoLookupError:
- if not ui.configbool('experimental', 'rebase.multidest'):
- raise
# multi-dest path: resolve dest for each SRC separately
destmap = {}
for r in rebaseset: