Mercurial > hg
annotate tests/test-rebase-brute-force.t @ 41163:0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
There was a divergence in behavior here between obsolete and strip based
amending. I first noticed the abort when testing outside of the test harness,
but then had trouble recreating it here after reverting the code changes. It
turns out, strip based amend was successfully amending the public commit after
it was posted! It looks like the protection is in the `commit --amend` command,
not in the underlying code that it calls.
I considered doing a preflight check and aborting. But the locks are only
acquired at the end, if amending, and this is too large a section of code to be
wrapped in a maybe-it's-held-or-not context manager for my tastes.
Additionally, some people do post-push reviews, and amending is the default
behavior, so they shouldn't see a misleading error message.
The lack of a 'Differential Revision' entry in the commit message breaks a
{phabreview} test, so it had to be partially conditionalized.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 05 Jan 2019 15:20:33 -0500 |
parents | 7f183c643eb6 |
children |
rev | line source |
---|---|
33708 | 1 $ cat >> $HGRCPATH <<EOF |
2 > [extensions] | |
3 > drawdag=$TESTDIR/drawdag.py | |
4 > bruterebase=$TESTDIR/bruterebase.py | |
5 > [experimental] | |
34866
1644623ab096
config: use 'experimental.evolution.create-markers'
Boris Feld <boris.feld@octobus.net>
parents:
33789
diff
changeset
|
6 > evolution.createmarkers=True |
34867
7f183c643eb6
config: use 'experimental.evolution.allowunstable'
Boris Feld <boris.feld@octobus.net>
parents:
34866
diff
changeset
|
7 > evolution.allowunstable=True |
33708 | 8 > EOF |
9 $ init() { | |
10 > N=`expr ${N:-0} + 1` | |
11 > cd $TESTTMP && hg init repo$N && cd repo$N | |
12 > hg debugdrawdag | |
13 > } | |
14 | |
15 Source looks like "N" | |
16 | |
17 $ init <<'EOS' | |
18 > C D | |
19 > |\| | |
20 > A B Z | |
21 > EOS | |
22 | |
23 $ hg debugbruterebase 'all()-Z' Z | |
24 A: A':Z | |
25 B: B':Z | |
26 AB: A':Z B':Z | |
33789
19f495fef0a3
rebase: change "result would have 3 parent" error message (BC)
Jun Wu <quark@fb.com>
parents:
33786
diff
changeset
|
27 C: ABORT: cannot rebase 3:a35c07e8a2a4 without moving at least one of its parents |
33708 | 28 AC: A':Z C':A'B |
29 BC: B':Z C':B'A | |
30 ABC: A':Z B':Z C':A'B' | |
31 D: D':Z | |
32 AD: A':Z D':Z | |
33 BD: B':Z D':B' | |
34 ABD: A':Z B':Z D':B' | |
33789
19f495fef0a3
rebase: change "result would have 3 parent" error message (BC)
Jun Wu <quark@fb.com>
parents:
33786
diff
changeset
|
35 CD: ABORT: cannot rebase 3:a35c07e8a2a4 without moving at least one of its parents |
33786
0975506120fb
rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents:
33708
diff
changeset
|
36 ACD: A':Z C':A'B D':Z |
33708 | 37 BCD: B':Z C':B'A D':B' |
38 ABCD: A':Z B':Z C':A'B' D':B' | |
39 | |
40 Moving backwards | |
41 | |
42 $ init <<'EOS' | |
43 > C | |
44 > |\ | |
45 > A B | |
46 > | | |
47 > Z | |
48 > EOS | |
49 $ hg debugbruterebase 'all()-Z' Z | |
50 B: B':Z | |
51 A: | |
52 BA: B':Z | |
33789
19f495fef0a3
rebase: change "result would have 3 parent" error message (BC)
Jun Wu <quark@fb.com>
parents:
33786
diff
changeset
|
53 C: ABORT: cannot rebase 3:b8d7149b562b without moving at least one of its parents |
33708 | 54 BC: B':Z C':B'A |
55 AC: | |
33786
0975506120fb
rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents:
33708
diff
changeset
|
56 BAC: B':Z C':B'A |