##// END OF EJS Templates
rebase: accept multiple --source arguments (BC)...
Martin von Zweigbergk -
r45044:05654ea5 default
parent child Browse files
Show More
@@ -815,8 +815,8 b' class rebaseruntime(object):'
815 (
815 (
816 b's',
816 b's',
817 b'source',
817 b'source',
818 b'',
818 [],
819 _(b'rebase the specified changeset and descendants'),
819 _(b'rebase the specified changesets and their descendants'),
820 _(b'REV'),
820 _(b'REV'),
821 ),
821 ),
822 (
822 (
@@ -871,7 +871,7 b' class rebaseruntime(object):'
871 + cmdutil.dryrunopts
871 + cmdutil.dryrunopts
872 + cmdutil.formatteropts
872 + cmdutil.formatteropts
873 + cmdutil.confirmopts,
873 + cmdutil.confirmopts,
874 _(b'[-s REV | -b REV | [-r REV]...] [-d REV] [OPTION]...'),
874 _(b'[[-s REV]... | -b REV | [-r REV]...] [-d REV] [OPTION]...'),
875 helpcategory=command.CATEGORY_CHANGE_MANAGEMENT,
875 helpcategory=command.CATEGORY_CHANGE_MANAGEMENT,
876 )
876 )
877 def rebase(ui, repo, **opts):
877 def rebase(ui, repo, **opts):
@@ -1186,7 +1186,7 b' def _origrebase('
1186 repo,
1186 repo,
1187 inmemory,
1187 inmemory,
1188 opts.get(b'dest', None),
1188 opts.get(b'dest', None),
1189 opts.get(b'source', None),
1189 opts.get(b'source', []),
1190 opts.get(b'base', None),
1190 opts.get(b'base', None),
1191 opts.get(b'rev', []),
1191 opts.get(b'rev', []),
1192 destspace=destspace,
1192 destspace=destspace,
@@ -1243,11 +1243,12 b' def _definedestmap(ui, repo, inmemory, d'
1243 ui.status(_(b'empty "rev" revision set - nothing to rebase\n'))
1243 ui.status(_(b'empty "rev" revision set - nothing to rebase\n'))
1244 return None
1244 return None
1245 elif srcf:
1245 elif srcf:
1246 src = scmutil.revrange(repo, [srcf])
1246 src = scmutil.revrange(repo, srcf)
1247 if not src:
1247 if not src:
1248 ui.status(_(b'empty "source" revision set - nothing to rebase\n'))
1248 ui.status(_(b'empty "source" revision set - nothing to rebase\n'))
1249 return None
1249 return None
1250 rebaseset = repo.revs(b'(%ld)::', src) or src
1250 # `+ (%ld)` to work around `wdir()::` being empty
1251 rebaseset = repo.revs(b'(%ld):: + (%ld)', src, src)
1251 else:
1252 else:
1252 base = scmutil.revrange(repo, [basef or b'.'])
1253 base = scmutil.revrange(repo, [basef or b'.'])
1253 if not base:
1254 if not base:
@@ -58,6 +58,13 b''
58 can use the new `conflictparents()` revset for finding the other
58 can use the new `conflictparents()` revset for finding the other
59 parent during a conflict.
59 parent during a conflict.
60
60
61 * `hg rebase` now accepts repeated `--source` arguments. For example,
62 `hg rebase --source 'A + B'` is equivalent to `hg rebase --source A
63 --source B`. This is a backwards-incompatible change because it
64 will break overriding an alias `myrebase = rebase --source A` by
65 `hg myrebase --source B` (it will now rebase `(A + B)::` instead of
66 `B::`).
67
61 * `hg recover` does not verify the validity of the whole repository
68 * `hg recover` does not verify the validity of the whole repository
62 anymore. You can pass `--verify` or call `hg verify` if necessary.
69 anymore. You can pass `--verify` or call `hg verify` if necessary.
63
70
@@ -272,7 +272,7 b' Different destinations for merge changes'
272
272
273 Move to a previous parent:
273 Move to a previous parent:
274
274
275 $ rebasewithdag -s E+F+G -d 'SRC^^' <<'EOS'
275 $ rebasewithdag -s E -s F -s G -d 'SRC^^' <<'EOS'
276 > H
276 > H
277 > |
277 > |
278 > D G
278 > D G
@@ -100,6 +100,10 b' These fail:'
100 abort: cannot rebase the working copy
100 abort: cannot rebase the working copy
101 [255]
101 [255]
102
102
103 $ hg rebase --source 1 --source 'wdir()' --dest 6
104 abort: cannot rebase the working copy
105 [255]
106
103 $ hg rebase --source '1 & !1' --dest 8
107 $ hg rebase --source '1 & !1' --dest 8
104 empty "source" revision set - nothing to rebase
108 empty "source" revision set - nothing to rebase
105 [1]
109 [1]
General Comments 0
You need to be logged in to leave comments. Login now