Show More
@@ -144,7 +144,7 b' def _revsetdestautoorphanrebase(repo, su' | |||||
144 | return smartset.baseset() |
|
144 | return smartset.baseset() | |
145 | dests = destutil.orphanpossibledestination(repo, src) |
|
145 | dests = destutil.orphanpossibledestination(repo, src) | |
146 | if len(dests) > 1: |
|
146 | if len(dests) > 1: | |
147 |
raise error. |
|
147 | raise error.StateError( | |
148 | _(b"ambiguous automatic rebase: %r could end up on any of %r") |
|
148 | _(b"ambiguous automatic rebase: %r could end up on any of %r") | |
149 | % (src, dests) |
|
149 | % (src, dests) | |
150 | ) |
|
150 | ) | |
@@ -424,7 +424,7 b' class rebaseruntime(object):' | |||||
424 | if self.collapsef: |
|
424 | if self.collapsef: | |
425 | dests = set(self.destmap.values()) |
|
425 | dests = set(self.destmap.values()) | |
426 | if len(dests) != 1: |
|
426 | if len(dests) != 1: | |
427 |
raise error. |
|
427 | raise error.InputError( | |
428 | _(b'--collapse does not work with multiple destinations') |
|
428 | _(b'--collapse does not work with multiple destinations') | |
429 | ) |
|
429 | ) | |
430 | destrev = next(iter(dests)) |
|
430 | destrev = next(iter(dests)) | |
@@ -469,7 +469,7 b' class rebaseruntime(object):' | |||||
469 | for rev in self.state: |
|
469 | for rev in self.state: | |
470 | branches.add(repo[rev].branch()) |
|
470 | branches.add(repo[rev].branch()) | |
471 | if len(branches) > 1: |
|
471 | if len(branches) > 1: | |
472 |
raise error. |
|
472 | raise error.InputError( | |
473 | _(b'cannot collapse multiple named branches') |
|
473 | _(b'cannot collapse multiple named branches') | |
474 | ) |
|
474 | ) | |
475 |
|
475 | |||
@@ -1093,10 +1093,10 b' def rebase(ui, repo, **opts):' | |||||
1093 | with repo.wlock(), repo.lock(): |
|
1093 | with repo.wlock(), repo.lock(): | |
1094 | rbsrt.restorestatus() |
|
1094 | rbsrt.restorestatus() | |
1095 | if rbsrt.collapsef: |
|
1095 | if rbsrt.collapsef: | |
1096 |
raise error. |
|
1096 | raise error.StateError(_(b"cannot stop in --collapse session")) | |
1097 | allowunstable = obsolete.isenabled(repo, obsolete.allowunstableopt) |
|
1097 | allowunstable = obsolete.isenabled(repo, obsolete.allowunstableopt) | |
1098 | if not (rbsrt.keepf or allowunstable): |
|
1098 | if not (rbsrt.keepf or allowunstable): | |
1099 |
raise error. |
|
1099 | raise error.StateError( | |
1100 | _( |
|
1100 | _( | |
1101 | b"cannot remove original changesets with" |
|
1101 | b"cannot remove original changesets with" | |
1102 | b" unrebased descendants" |
|
1102 | b" unrebased descendants" | |
@@ -1220,14 +1220,16 b' def _origrebase(ui, repo, action, opts, ' | |||||
1220 | ) |
|
1220 | ) | |
1221 | % help |
|
1221 | % help | |
1222 | ) |
|
1222 | ) | |
1223 |
raise error. |
|
1223 | raise error.InputError(msg) | |
1224 |
|
1224 | |||
1225 | if rbsrt.collapsemsg and not rbsrt.collapsef: |
|
1225 | if rbsrt.collapsemsg and not rbsrt.collapsef: | |
1226 | raise error.Abort(_(b'message can only be specified with collapse')) |
|
1226 | raise error.InputError( | |
|
1227 | _(b'message can only be specified with collapse') | |||
|
1228 | ) | |||
1227 |
|
1229 | |||
1228 | if action: |
|
1230 | if action: | |
1229 | if rbsrt.collapsef: |
|
1231 | if rbsrt.collapsef: | |
1230 |
raise error. |
|
1232 | raise error.InputError( | |
1231 | _(b'cannot use collapse with continue or abort') |
|
1233 | _(b'cannot use collapse with continue or abort') | |
1232 | ) |
|
1234 | ) | |
1233 | if action == b'abort' and opts.get(b'tool', False): |
|
1235 | if action == b'abort' and opts.get(b'tool', False): | |
@@ -1294,7 +1296,7 b' def _definedestmap(ui, repo, inmemory, d' | |||||
1294 | cmdutil.bailifchanged(repo) |
|
1296 | cmdutil.bailifchanged(repo) | |
1295 |
|
1297 | |||
1296 | if ui.configbool(b'commands', b'rebase.requiredest') and not destf: |
|
1298 | if ui.configbool(b'commands', b'rebase.requiredest') and not destf: | |
1297 |
raise error. |
|
1299 | raise error.InputError( | |
1298 | _(b'you must specify a destination'), |
|
1300 | _(b'you must specify a destination'), | |
1299 | hint=_(b'use: hg rebase -d REV'), |
|
1301 | hint=_(b'use: hg rebase -d REV'), | |
1300 | ) |
|
1302 | ) | |
@@ -1388,7 +1390,7 b' def _definedestmap(ui, repo, inmemory, d' | |||||
1388 | return None |
|
1390 | return None | |
1389 |
|
1391 | |||
1390 | if wdirrev in rebaseset: |
|
1392 | if wdirrev in rebaseset: | |
1391 |
raise error. |
|
1393 | raise error.InputError(_(b'cannot rebase the working copy')) | |
1392 | rebasingwcp = repo[b'.'].rev() in rebaseset |
|
1394 | rebasingwcp = repo[b'.'].rev() in rebaseset | |
1393 | ui.log( |
|
1395 | ui.log( | |
1394 | b"rebase", |
|
1396 | b"rebase", | |
@@ -1426,7 +1428,7 b' def _definedestmap(ui, repo, inmemory, d' | |||||
1426 | elif size == 0: |
|
1428 | elif size == 0: | |
1427 | ui.note(_(b'skipping %s - empty destination\n') % repo[r]) |
|
1429 | ui.note(_(b'skipping %s - empty destination\n') % repo[r]) | |
1428 | else: |
|
1430 | else: | |
1429 |
raise error. |
|
1431 | raise error.InputError( | |
1430 | _(b'rebase destination for %s is not unique') % repo[r] |
|
1432 | _(b'rebase destination for %s is not unique') % repo[r] | |
1431 | ) |
|
1433 | ) | |
1432 |
|
1434 | |||
@@ -1459,7 +1461,7 b' def externalparent(repo, state, destance' | |||||
1459 | return nullrev |
|
1461 | return nullrev | |
1460 | if len(parents) == 1: |
|
1462 | if len(parents) == 1: | |
1461 | return parents.pop() |
|
1463 | return parents.pop() | |
1462 |
raise error. |
|
1464 | raise error.StateError( | |
1463 | _( |
|
1465 | _( | |
1464 | b'unable to collapse on top of %d, there is more ' |
|
1466 | b'unable to collapse on top of %d, there is more ' | |
1465 | b'than one external parent: %s' |
|
1467 | b'than one external parent: %s' | |
@@ -1659,7 +1661,7 b' def _checkobsrebase(repo, ui, rebaseobsr' | |||||
1659 | b"to force the rebase please set " |
|
1661 | b"to force the rebase please set " | |
1660 | b"experimental.evolution.allowdivergence=True" |
|
1662 | b"experimental.evolution.allowdivergence=True" | |
1661 | ) |
|
1663 | ) | |
1662 |
raise error. |
|
1664 | raise error.StateError(msg % (b",".join(divhashes),), hint=h) | |
1663 |
|
1665 | |||
1664 |
|
1666 | |||
1665 | def successorrevs(unfi, rev): |
|
1667 | def successorrevs(unfi, rev): | |
@@ -1762,7 +1764,7 b' def defineparents(repo, rev, destmap, st' | |||||
1762 | # /| # None of A and B will be changed to D and rebase fails. |
|
1764 | # /| # None of A and B will be changed to D and rebase fails. | |
1763 | # A B D |
|
1765 | # A B D | |
1764 | if set(newps) == set(oldps) and dest not in newps: |
|
1766 | if set(newps) == set(oldps) and dest not in newps: | |
1765 |
raise error. |
|
1767 | raise error.InputError( | |
1766 | _( |
|
1768 | _( | |
1767 | b'cannot rebase %d:%s without ' |
|
1769 | b'cannot rebase %d:%s without ' | |
1768 | b'moving at least one of its parents' |
|
1770 | b'moving at least one of its parents' | |
@@ -1774,7 +1776,7 b' def defineparents(repo, rev, destmap, st' | |||||
1774 | # impossible. With multi-dest, the initial check does not cover complex |
|
1776 | # impossible. With multi-dest, the initial check does not cover complex | |
1775 | # cases since we don't have abstractions to dry-run rebase cheaply. |
|
1777 | # cases since we don't have abstractions to dry-run rebase cheaply. | |
1776 | if any(p != nullrev and isancestor(rev, p) for p in newps): |
|
1778 | if any(p != nullrev and isancestor(rev, p) for p in newps): | |
1777 |
raise error. |
|
1779 | raise error.InputError(_(b'source is ancestor of destination')) | |
1778 |
|
1780 | |||
1779 | # Check if the merge will contain unwanted changes. That may happen if |
|
1781 | # Check if the merge will contain unwanted changes. That may happen if | |
1780 | # there are multiple special (non-changelog ancestor) merge bases, which |
|
1782 | # there are multiple special (non-changelog ancestor) merge bases, which | |
@@ -1836,7 +1838,7 b' def defineparents(repo, rev, destmap, st' | |||||
1836 | if revs is not None |
|
1838 | if revs is not None | |
1837 | ) |
|
1839 | ) | |
1838 | ) |
|
1840 | ) | |
1839 |
raise error. |
|
1841 | raise error.InputError( | |
1840 | _(b'rebasing %d:%s will include unwanted changes from %s') |
|
1842 | _(b'rebasing %d:%s will include unwanted changes from %s') | |
1841 | % (rev, repo[rev], unwanteddesc) |
|
1843 | % (rev, repo[rev], unwanteddesc) | |
1842 | ) |
|
1844 | ) | |
@@ -1981,7 +1983,7 b' def sortsource(destmap):' | |||||
1981 | if destmap[r] not in srcset: |
|
1983 | if destmap[r] not in srcset: | |
1982 | result.append(r) |
|
1984 | result.append(r) | |
1983 | if not result: |
|
1985 | if not result: | |
1984 |
raise error. |
|
1986 | raise error.InputError(_(b'source and destination form a cycle')) | |
1985 | srcset -= set(result) |
|
1987 | srcset -= set(result) | |
1986 | yield result |
|
1988 | yield result | |
1987 |
|
1989 | |||
@@ -2001,12 +2003,12 b' def buildstate(repo, destmap, collapse):' | |||||
2001 | if b'qtip' in repo.tags(): |
|
2003 | if b'qtip' in repo.tags(): | |
2002 | mqapplied = {repo[s.node].rev() for s in repo.mq.applied} |
|
2004 | mqapplied = {repo[s.node].rev() for s in repo.mq.applied} | |
2003 | if set(destmap.values()) & mqapplied: |
|
2005 | if set(destmap.values()) & mqapplied: | |
2004 |
raise error. |
|
2006 | raise error.StateError(_(b'cannot rebase onto an applied mq patch')) | |
2005 |
|
2007 | |||
2006 | # Get "cycle" error early by exhausting the generator. |
|
2008 | # Get "cycle" error early by exhausting the generator. | |
2007 | sortedsrc = list(sortsource(destmap)) # a list of sorted revs |
|
2009 | sortedsrc = list(sortsource(destmap)) # a list of sorted revs | |
2008 | if not sortedsrc: |
|
2010 | if not sortedsrc: | |
2009 |
raise error. |
|
2011 | raise error.InputError(_(b'no matching revisions')) | |
2010 |
|
2012 | |||
2011 | # Only check the first batch of revisions to rebase not depending on other |
|
2013 | # Only check the first batch of revisions to rebase not depending on other | |
2012 | # rebaseset. This means "source is ancestor of destination" for the second |
|
2014 | # rebaseset. This means "source is ancestor of destination" for the second | |
@@ -2014,7 +2016,7 b' def buildstate(repo, destmap, collapse):' | |||||
2014 | # "defineparents" to do that check. |
|
2016 | # "defineparents" to do that check. | |
2015 | roots = list(repo.set(b'roots(%ld)', sortedsrc[0])) |
|
2017 | roots = list(repo.set(b'roots(%ld)', sortedsrc[0])) | |
2016 | if not roots: |
|
2018 | if not roots: | |
2017 |
raise error. |
|
2019 | raise error.InputError(_(b'no matching revisions')) | |
2018 |
|
2020 | |||
2019 | def revof(r): |
|
2021 | def revof(r): | |
2020 | return r.rev() |
|
2022 | return r.rev() | |
@@ -2026,7 +2028,7 b' def buildstate(repo, destmap, collapse):' | |||||
2026 | dest = repo[destmap[root.rev()]] |
|
2028 | dest = repo[destmap[root.rev()]] | |
2027 | commonbase = root.ancestor(dest) |
|
2029 | commonbase = root.ancestor(dest) | |
2028 | if commonbase == root: |
|
2030 | if commonbase == root: | |
2029 |
raise error. |
|
2031 | raise error.InputError(_(b'source is ancestor of destination')) | |
2030 | if commonbase == dest: |
|
2032 | if commonbase == dest: | |
2031 | wctx = repo[None] |
|
2033 | wctx = repo[None] | |
2032 | if dest == wctx.p1(): |
|
2034 | if dest == wctx.p1(): | |
@@ -2119,7 +2121,7 b' def pullrebase(orig, ui, repo, *args, **' | |||||
2119 | if ui.configbool(b'commands', b'rebase.requiredest'): |
|
2121 | if ui.configbool(b'commands', b'rebase.requiredest'): | |
2120 | msg = _(b'rebase destination required by configuration') |
|
2122 | msg = _(b'rebase destination required by configuration') | |
2121 | hint = _(b'use hg pull followed by hg rebase -d DEST') |
|
2123 | hint = _(b'use hg pull followed by hg rebase -d DEST') | |
2122 |
raise error. |
|
2124 | raise error.InputError(msg, hint=hint) | |
2123 |
|
2125 | |||
2124 | with repo.wlock(), repo.lock(): |
|
2126 | with repo.wlock(), repo.lock(): | |
2125 | if opts.get('update'): |
|
2127 | if opts.get('update'): | |
@@ -2176,7 +2178,7 b' def pullrebase(orig, ui, repo, *args, **' | |||||
2176 | commands.update(ui, repo) |
|
2178 | commands.update(ui, repo) | |
2177 | else: |
|
2179 | else: | |
2178 | if opts.get('tool'): |
|
2180 | if opts.get('tool'): | |
2179 |
raise error. |
|
2181 | raise error.InputError(_(b'--tool can only be used with --rebase')) | |
2180 | ret = orig(ui, repo, *args, **opts) |
|
2182 | ret = orig(ui, repo, *args, **opts) | |
2181 |
|
2183 | |||
2182 | return ret |
|
2184 | return ret |
@@ -134,7 +134,7 b' Custom message:' | |||||
134 |
|
134 | |||
135 | $ hg rebase --base B -m 'custom message' |
|
135 | $ hg rebase --base B -m 'custom message' | |
136 | abort: message can only be specified with collapse |
|
136 | abort: message can only be specified with collapse | |
137 |
[ |
|
137 | [10] | |
138 |
|
138 | |||
139 | $ cat > $TESTTMP/checkeditform.sh <<EOF |
|
139 | $ cat > $TESTTMP/checkeditform.sh <<EOF | |
140 | > env | grep HGEDITFORM |
|
140 | > env | grep HGEDITFORM | |
@@ -180,7 +180,7 b' Rebase and collapse - more than one exte' | |||||
180 |
|
180 | |||
181 | $ hg rebase -s C --dest H --collapse |
|
181 | $ hg rebase -s C --dest H --collapse | |
182 | abort: unable to collapse on top of 3, there is more than one external parent: 1, 6 |
|
182 | abort: unable to collapse on top of 3, there is more than one external parent: 1, 6 | |
183 |
[2 |
|
183 | [20] | |
184 |
|
184 | |||
185 | Rebase and collapse - E onto H: |
|
185 | Rebase and collapse - E onto H: | |
186 |
|
186 | |||
@@ -386,7 +386,7 b' With non-contiguous commits:' | |||||
386 | BROKEN: should be allowed |
|
386 | BROKEN: should be allowed | |
387 | $ hg rebase --collapse -r 'B+D+F' -d G |
|
387 | $ hg rebase --collapse -r 'B+D+F' -d G | |
388 | abort: unable to collapse on top of 2, there is more than one external parent: 3, 5 |
|
388 | abort: unable to collapse on top of 2, there is more than one external parent: 3, 5 | |
389 |
[2 |
|
389 | [20] | |
390 | $ cd .. |
|
390 | $ cd .. | |
391 |
|
391 | |||
392 |
|
392 | |||
@@ -404,7 +404,7 b' BROKEN: should be allowed' | |||||
404 |
|
404 | |||
405 | $ hg rebase --collapse -d H -s 'B+F' |
|
405 | $ hg rebase --collapse -d H -s 'B+F' | |
406 | abort: unable to collapse on top of 5, there is more than one external parent: 1, 3 |
|
406 | abort: unable to collapse on top of 5, there is more than one external parent: 1, 3 | |
407 |
[2 |
|
407 | [20] | |
408 | $ cd .. |
|
408 | $ cd .. | |
409 |
|
409 | |||
410 | With internal merge: |
|
410 | With internal merge: | |
@@ -484,7 +484,7 b' Interactions between collapse and keepbr' | |||||
484 |
|
484 | |||
485 | $ hg rebase --keepbranches --collapse -s 1 -d 3 |
|
485 | $ hg rebase --keepbranches --collapse -s 1 -d 3 | |
486 | abort: cannot collapse multiple named branches |
|
486 | abort: cannot collapse multiple named branches | |
487 |
[ |
|
487 | [10] | |
488 |
|
488 | |||
489 | $ cd .. |
|
489 | $ cd .. | |
490 |
|
490 |
@@ -18,7 +18,7 b' Require a destination' | |||||
18 | $ hg rebase |
|
18 | $ hg rebase | |
19 | abort: you must specify a destination |
|
19 | abort: you must specify a destination | |
20 | (use: hg rebase -d REV) |
|
20 | (use: hg rebase -d REV) | |
21 |
[ |
|
21 | [10] | |
22 | $ hg rebase -d 1 |
|
22 | $ hg rebase -d 1 | |
23 | rebasing 2:5db65b93a12b tip "cc" |
|
23 | rebasing 2:5db65b93a12b tip "cc" | |
24 | saved backup bundle to $TESTTMP/repo/.hg/strip-backup/5db65b93a12b-4fb789ec-rebase.hg |
|
24 | saved backup bundle to $TESTTMP/repo/.hg/strip-backup/5db65b93a12b-4fb789ec-rebase.hg | |
@@ -74,7 +74,7 b' Check rebase.requiredest interaction wit' | |||||
74 | $ hg pull --rebase |
|
74 | $ hg pull --rebase | |
75 | abort: rebase destination required by configuration |
|
75 | abort: rebase destination required by configuration | |
76 | (use hg pull followed by hg rebase -d DEST) |
|
76 | (use hg pull followed by hg rebase -d DEST) | |
77 |
[ |
|
77 | [10] | |
78 |
|
78 | |||
79 | Setup rebase with multiple destinations |
|
79 | Setup rebase with multiple destinations | |
80 |
|
80 | |||
@@ -152,7 +152,7 b' Multiple destinations and --collapse are' | |||||
152 | > A D |
|
152 | > A D | |
153 | > EOS |
|
153 | > EOS | |
154 | abort: --collapse does not work with multiple destinations |
|
154 | abort: --collapse does not work with multiple destinations | |
155 |
[ |
|
155 | [10] | |
156 |
|
156 | |||
157 | Multiple destinations cannot be used with --base: |
|
157 | Multiple destinations cannot be used with --base: | |
158 |
|
158 | |||
@@ -192,7 +192,7 b' Destination resolves to multiple changes' | |||||
192 | > Z |
|
192 | > Z | |
193 | > EOS |
|
193 | > EOS | |
194 | abort: rebase destination for f0a671a46792 is not unique |
|
194 | abort: rebase destination for f0a671a46792 is not unique | |
195 |
[ |
|
195 | [10] | |
196 |
|
196 | |||
197 | Destination is an ancestor of source: |
|
197 | Destination is an ancestor of source: | |
198 |
|
198 | |||
@@ -204,7 +204,7 b' Destination is an ancestor of source:' | |||||
204 | > Z |
|
204 | > Z | |
205 | > EOS |
|
205 | > EOS | |
206 | abort: source and destination form a cycle |
|
206 | abort: source and destination form a cycle | |
207 |
[ |
|
207 | [10] | |
208 |
|
208 | |||
209 | BUG: cycles aren't flagged correctly when --dry-run is set: |
|
209 | BUG: cycles aren't flagged correctly when --dry-run is set: | |
210 | $ rebasewithdag -s B -d 'SRC' --dry-run <<'EOS' |
|
210 | $ rebasewithdag -s B -d 'SRC' --dry-run <<'EOS' | |
@@ -216,7 +216,7 b" BUG: cycles aren't flagged correctly whe" | |||||
216 | > EOS |
|
216 | > EOS | |
217 | abort: source and destination form a cycle |
|
217 | abort: source and destination form a cycle | |
218 | starting dry-run rebase; repository will not be changed |
|
218 | starting dry-run rebase; repository will not be changed | |
219 |
[ |
|
219 | [10] | |
220 |
|
220 | |||
221 | Switch roots: |
|
221 | Switch roots: | |
222 |
|
222 | |||
@@ -329,7 +329,7 b' Detect cycles early:' | |||||
329 | > Z |
|
329 | > Z | |
330 | > EOS |
|
330 | > EOS | |
331 | abort: source and destination form a cycle |
|
331 | abort: source and destination form a cycle | |
332 |
[ |
|
332 | [10] | |
333 |
|
333 | |||
334 | Detect source is ancestor of dest in runtime: |
|
334 | Detect source is ancestor of dest in runtime: | |
335 |
|
335 | |||
@@ -341,7 +341,7 b' Detect source is ancestor of dest in run' | |||||
341 | > A |
|
341 | > A | |
342 | > EOS |
|
342 | > EOS | |
343 | abort: source is ancestor of destination |
|
343 | abort: source is ancestor of destination | |
344 |
[ |
|
344 | [10] | |
345 |
|
345 | |||
346 | "Already rebased" fast path still works: |
|
346 | "Already rebased" fast path still works: | |
347 |
|
347 |
@@ -46,14 +46,14 b' Rebase - try to rebase on an applied mq ' | |||||
46 |
|
46 | |||
47 | $ hg rebase -s 1 -d 3 |
|
47 | $ hg rebase -s 1 -d 3 | |
48 | abort: cannot rebase onto an applied mq patch |
|
48 | abort: cannot rebase onto an applied mq patch | |
49 |
[2 |
|
49 | [20] | |
50 |
|
50 | |||
51 | Rebase - same thing, but mq patch is default dest: |
|
51 | Rebase - same thing, but mq patch is default dest: | |
52 |
|
52 | |||
53 | $ hg up -q 1 |
|
53 | $ hg up -q 1 | |
54 | $ hg rebase |
|
54 | $ hg rebase | |
55 | abort: cannot rebase onto an applied mq patch |
|
55 | abort: cannot rebase onto an applied mq patch | |
56 |
[2 |
|
56 | [20] | |
57 | $ hg up -q qtip |
|
57 | $ hg up -q qtip | |
58 |
|
58 | |||
59 | Rebase - generate a conflict: |
|
59 | Rebase - generate a conflict: |
@@ -247,7 +247,7 b' Rebasing descendant onto ancestor across' | |||||
247 |
|
247 | |||
248 | $ hg rebase -s 5 -d 6 |
|
248 | $ hg rebase -s 5 -d 6 | |
249 | abort: source and destination form a cycle |
|
249 | abort: source and destination form a cycle | |
250 |
[ |
|
250 | [10] | |
251 |
|
251 | |||
252 | $ hg rebase -s 6 -d 5 |
|
252 | $ hg rebase -s 6 -d 5 | |
253 | rebasing 6:3944801ae4ea "dev-two named branch" |
|
253 | rebasing 6:3944801ae4ea "dev-two named branch" |
@@ -154,7 +154,7 b' Grafty cherry picking rebasing:' | |||||
154 | rebasing 2:ec2c14fb2984 "dev: f-dev stuff" |
|
154 | rebasing 2:ec2c14fb2984 "dev: f-dev stuff" | |
155 | rebasing 4:4b019212aaf6 "dev: merge default" |
|
155 | rebasing 4:4b019212aaf6 "dev: merge default" | |
156 | abort: rebasing 4:4b019212aaf6 will include unwanted changes from 1:1d1a643d390e |
|
156 | abort: rebasing 4:4b019212aaf6 will include unwanted changes from 1:1d1a643d390e | |
157 |
[ |
|
157 | [10] | |
158 | $ cd .. |
|
158 | $ cd .. | |
159 |
|
159 | |||
160 |
|
160 | |||
@@ -314,7 +314,7 b' may include unwanted content:' | |||||
314 | rebasing 6:b296604d9846 E "E" |
|
314 | rebasing 6:b296604d9846 E "E" | |
315 | rebasing 7:caa9781e507d F tip "F" |
|
315 | rebasing 7:caa9781e507d F tip "F" | |
316 | abort: rebasing 7:caa9781e507d will include unwanted changes from 4:d6003a550c2c or 3:c1e6b162678d |
|
316 | abort: rebasing 7:caa9781e507d will include unwanted changes from 4:d6003a550c2c or 3:c1e6b162678d | |
317 |
[ |
|
317 | [10] | |
318 |
|
318 | |||
319 | The warning does not get printed if there is no unwanted change detected: |
|
319 | The warning does not get printed if there is no unwanted change detected: | |
320 |
|
320 |
@@ -560,7 +560,7 b' Detach both parents' | |||||
560 | rebasing 2:b18e25de2cf5 D "D" |
|
560 | rebasing 2:b18e25de2cf5 D "D" | |
561 | rebasing 6:f15c3adaf214 F tip "F" |
|
561 | rebasing 6:f15c3adaf214 F tip "F" | |
562 | abort: cannot rebase 6:f15c3adaf214 without moving at least one of its parents |
|
562 | abort: cannot rebase 6:f15c3adaf214 without moving at least one of its parents | |
563 |
[ |
|
563 | [10] | |
564 |
|
564 | |||
565 | $ cd .. |
|
565 | $ cd .. | |
566 |
|
566 | |||
@@ -948,7 +948,7 b' If a rebase is going to create divergenc' | |||||
948 | $ hg rebase -s 10 -d 12 |
|
948 | $ hg rebase -s 10 -d 12 | |
949 | abort: this rebase will cause divergences from: 121d9e3bc4c6 |
|
949 | abort: this rebase will cause divergences from: 121d9e3bc4c6 | |
950 | (to force the rebase please set experimental.evolution.allowdivergence=True) |
|
950 | (to force the rebase please set experimental.evolution.allowdivergence=True) | |
951 |
[2 |
|
951 | [20] | |
952 | $ hg log -G |
|
952 | $ hg log -G | |
953 | @ 14:73568ab6879d bar foo |
|
953 | @ 14:73568ab6879d bar foo | |
954 | | |
|
954 | | | |
@@ -1152,7 +1152,7 b' By allowing divergence, we can perform t' | |||||
1152 | $ hg rebase -r 'c'::'f' -d 'x' |
|
1152 | $ hg rebase -r 'c'::'f' -d 'x' | |
1153 | abort: this rebase will cause divergences from: 76be324c128b |
|
1153 | abort: this rebase will cause divergences from: 76be324c128b | |
1154 | (to force the rebase please set experimental.evolution.allowdivergence=True) |
|
1154 | (to force the rebase please set experimental.evolution.allowdivergence=True) | |
1155 |
[2 |
|
1155 | [20] | |
1156 | $ hg rebase --config experimental.evolution.allowdivergence=true -r 'c'::'f' -d 'x' |
|
1156 | $ hg rebase --config experimental.evolution.allowdivergence=true -r 'c'::'f' -d 'x' | |
1157 | rebasing 3:a82ac2b38757 c "c" |
|
1157 | rebasing 3:a82ac2b38757 c "c" | |
1158 | rebasing 4:76be324c128b d "d" |
|
1158 | rebasing 4:76be324c128b d "d" | |
@@ -1566,7 +1566,7 b' This strip seems to be the key to avoid ' | |||||
1566 | $ hg rebase -b 'desc("D")' -d 'desc("J")' |
|
1566 | $ hg rebase -b 'desc("D")' -d 'desc("J")' | |
1567 | abort: this rebase will cause divergences from: 112478962961 |
|
1567 | abort: this rebase will cause divergences from: 112478962961 | |
1568 | (to force the rebase please set experimental.evolution.allowdivergence=True) |
|
1568 | (to force the rebase please set experimental.evolution.allowdivergence=True) | |
1569 |
[2 |
|
1569 | [20] | |
1570 |
|
1570 | |||
1571 | Rebase merge where both parents have successors in destination |
|
1571 | Rebase merge where both parents have successors in destination | |
1572 |
|
1572 | |||
@@ -1585,7 +1585,7 b' Rebase merge where both parents have suc' | |||||
1585 | note: not rebasing 5:b23a2cc00842 B "B", already in destination as 1:058c1e1fb10a D "D" |
|
1585 | note: not rebasing 5:b23a2cc00842 B "B", already in destination as 1:058c1e1fb10a D "D" | |
1586 | rebasing 7:dac5d11c5a7d E tip "E" |
|
1586 | rebasing 7:dac5d11c5a7d E tip "E" | |
1587 | abort: rebasing 7:dac5d11c5a7d will include unwanted changes from 3:59c792af609c, 5:b23a2cc00842 or 2:ba2b7fa7166d, 4:a3d17304151f |
|
1587 | abort: rebasing 7:dac5d11c5a7d will include unwanted changes from 3:59c792af609c, 5:b23a2cc00842 or 2:ba2b7fa7166d, 4:a3d17304151f | |
1588 |
[ |
|
1588 | [10] | |
1589 | $ cd .. |
|
1589 | $ cd .. | |
1590 |
|
1590 | |||
1591 | Rebase a non-clean merge. One parent has successor in destination, the other |
|
1591 | Rebase a non-clean merge. One parent has successor in destination, the other | |
@@ -1941,7 +1941,7 b' Test it aborts if unstable csets is not ' | |||||
1941 | $ hg rebase --stop |
|
1941 | $ hg rebase --stop | |
1942 | abort: cannot remove original changesets with unrebased descendants |
|
1942 | abort: cannot remove original changesets with unrebased descendants | |
1943 | (either enable obsmarkers to allow unstable revisions or use --keep to keep original changesets) |
|
1943 | (either enable obsmarkers to allow unstable revisions or use --keep to keep original changesets) | |
1944 |
[2 |
|
1944 | [20] | |
1945 | $ hg rebase --abort |
|
1945 | $ hg rebase --abort | |
1946 | saved backup bundle to $TESTTMP/rbstop/.hg/strip-backup/b15528633407-6eb72b6f-backup.hg |
|
1946 | saved backup bundle to $TESTTMP/rbstop/.hg/strip-backup/b15528633407-6eb72b6f-backup.hg | |
1947 | rebase aborted |
|
1947 | rebase aborted | |
@@ -2020,7 +2020,7 b' Test --stop aborts when --collapse was p' | |||||
2020 | [240] |
|
2020 | [240] | |
2021 | $ hg rebase --stop |
|
2021 | $ hg rebase --stop | |
2022 | abort: cannot stop in --collapse session |
|
2022 | abort: cannot stop in --collapse session | |
2023 |
[2 |
|
2023 | [20] | |
2024 | $ hg rebase --abort |
|
2024 | $ hg rebase --abort | |
2025 | rebase aborted |
|
2025 | rebase aborted | |
2026 | $ hg diff |
|
2026 | $ hg diff |
@@ -66,7 +66,7 b' These fail:' | |||||
66 |
|
66 | |||
67 | $ hg rebase --continue --collapse |
|
67 | $ hg rebase --continue --collapse | |
68 | abort: cannot use collapse with continue or abort |
|
68 | abort: cannot use collapse with continue or abort | |
69 |
[ |
|
69 | [10] | |
70 |
|
70 | |||
71 | $ hg rebase --continue --dest 4 |
|
71 | $ hg rebase --continue --dest 4 | |
72 | abort: cannot specify both --continue and --dest |
|
72 | abort: cannot specify both --continue and --dest | |
@@ -94,15 +94,15 b' These fail:' | |||||
94 |
|
94 | |||
95 | $ hg rebase --rev 'wdir()' --dest 6 |
|
95 | $ hg rebase --rev 'wdir()' --dest 6 | |
96 | abort: cannot rebase the working copy |
|
96 | abort: cannot rebase the working copy | |
97 |
[ |
|
97 | [10] | |
98 |
|
98 | |||
99 | $ hg rebase --source 'wdir()' --dest 6 |
|
99 | $ hg rebase --source 'wdir()' --dest 6 | |
100 | abort: cannot rebase the working copy |
|
100 | abort: cannot rebase the working copy | |
101 |
[ |
|
101 | [10] | |
102 |
|
102 | |||
103 | $ hg rebase --source 1 --source 'wdir()' --dest 6 |
|
103 | $ hg rebase --source 1 --source 'wdir()' --dest 6 | |
104 | abort: cannot rebase the working copy |
|
104 | abort: cannot rebase the working copy | |
105 |
[ |
|
105 | [10] | |
106 |
|
106 | |||
107 | $ hg rebase --source '1 & !1' --dest 8 |
|
107 | $ hg rebase --source '1 & !1' --dest 8 | |
108 | empty "source" revision set - nothing to rebase |
|
108 | empty "source" revision set - nothing to rebase | |
@@ -508,11 +508,11 b' Test --tool parameter:' | |||||
508 |
|
508 | |||
509 | $ hg rebase -i |
|
509 | $ hg rebase -i | |
510 | abort: interactive history editing is supported by the 'histedit' extension (see "hg --config extensions.histedit= help -e histedit") |
|
510 | abort: interactive history editing is supported by the 'histedit' extension (see "hg --config extensions.histedit= help -e histedit") | |
511 |
[ |
|
511 | [10] | |
512 |
|
512 | |||
513 | $ hg rebase --interactive |
|
513 | $ hg rebase --interactive | |
514 | abort: interactive history editing is supported by the 'histedit' extension (see "hg --config extensions.histedit= help -e histedit") |
|
514 | abort: interactive history editing is supported by the 'histedit' extension (see "hg --config extensions.histedit= help -e histedit") | |
515 |
[ |
|
515 | [10] | |
516 |
|
516 | |||
517 | $ cd .. |
|
517 | $ cd .. | |
518 |
|
518 |
@@ -266,14 +266,14 b' F onto G - rebase onto a descendant:' | |||||
266 |
|
266 | |||
267 | $ hg rebase -s 5 -d 6 |
|
267 | $ hg rebase -s 5 -d 6 | |
268 | abort: source and destination form a cycle |
|
268 | abort: source and destination form a cycle | |
269 |
[ |
|
269 | [10] | |
270 |
|
270 | |||
271 | G onto B - merge revision with both parents not in ancestors of target: |
|
271 | G onto B - merge revision with both parents not in ancestors of target: | |
272 |
|
272 | |||
273 | $ hg rebase -s 6 -d 1 |
|
273 | $ hg rebase -s 6 -d 1 | |
274 | rebasing 6:eea13746799a "G" |
|
274 | rebasing 6:eea13746799a "G" | |
275 | abort: cannot rebase 6:eea13746799a without moving at least one of its parents |
|
275 | abort: cannot rebase 6:eea13746799a without moving at least one of its parents | |
276 |
[ |
|
276 | [10] | |
277 | $ hg rebase --abort |
|
277 | $ hg rebase --abort | |
278 | rebase aborted |
|
278 | rebase aborted | |
279 |
|
279 |
General Comments 0
You need to be logged in to leave comments.
Login now