mononoke: test pushrebase of a merge with public p2

Summary:
Can we rebase a merge commit whose one parent (p2) is an ancestor of our public
bookmark and the other - not?

Reviewed By: lukaspiatkowski

Differential Revision: D13802863

fbshipit-source-id: f12cbc0684a001a2b9ac6eb903d825e73777ab58
This commit is contained in:
Kostia Balytskyi 2019-02-06 14:28:55 -08:00 committed by Facebook Github Bot
parent 52d5b5d52b
commit 2c4ea43016

View File

@ -256,3 +256,126 @@ Push-Rebase over merge is not allowed
abort: stream ended unexpectedly (got 0 bytes, expected 4)
[255]
$ hgmn up master_bookmark -q
Push-rebase of a commit with one parent being the ancestor of the destination bookmark
- Do some preparatory work
$ echo 9 > 9 && hg add 9 && hg ci -m 9
$ echo 10 > 10 && hg add 10 && hg ci -m 10
$ echo 11 > 11 && hg add 11 && hg ci -m 11
$ hgmn push -r . --to master_bookmark -q
$ hgmn up .^^ && echo 12 > 12 && hg add 12 && hg ci -m 12
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ log -r ":"
o 11 [public;rev=22;589551466f25] default/master_bookmark
|
o 10 [public;rev=21;c573a92e1179]
|
| @ 12 [draft;rev=23;cd5aac4439e5]
|/
o 9 [public;rev=20;2f7cc50dc4e5]
|
o merge 6 and 7 [public;rev=18;4a0002072071]
|\
\| o (6|7) \[public;rev=17;.*\] (re)
| |
o \| (6|7) \[public;rev=16;.*\] (re)
|/
o 5 [public;rev=12;59e5396444cf]
|
| o 8 [draft;rev=19;e0f0824ca6a6]
|/
o 4 [public;rev=11;4f5a4463b24b]
|
o 3 [public;rev=10;7796136324ad]
|
o 1 [public;rev=4;c2e526aacb51]
|
o C [public;rev=2;26805aba1e60]
|
o B [public;rev=1;112478962961]
|
o A [public;rev=0;426bada5c675]
$ hg merge -qr 21 && hg ci -qm "merge 10 and 12"
$ hg phase -r $(hg log -r . -T "{p1node}")
23: draft
$ hg phase -r $(hg log -r . -T "{p2node}")
21: public
$ log -r ":"
o 11 [public;rev=22;589551466f25] default/master_bookmark
|
| @ merge 10 and 12 [draft;rev=24;e3db177db1d1]
|/|
o | 10 [public;rev=21;c573a92e1179]
| |
| o 12 [draft;rev=23;cd5aac4439e5]
|/
o 9 [public;rev=20;2f7cc50dc4e5]
|
o merge 6 and 7 [public;rev=18;4a0002072071]
|\
\| o (6|7) \[public;rev=17;.*\] (re)
| |
o \| (6|7) \[public;rev=16;.*\] (re)
|/
o 5 [public;rev=12;59e5396444cf]
|
| o 8 [draft;rev=19;e0f0824ca6a6]
|/
o 4 [public;rev=11;4f5a4463b24b]
|
o 3 [public;rev=10;7796136324ad]
|
o 1 [public;rev=4;c2e526aacb51]
|
o C [public;rev=2;26805aba1e60]
|
o B [public;rev=1;112478962961]
|
o A [public;rev=0;426bada5c675]
- Actually test the push
$ hgmn push -r . --to master_bookmark
remote: * DEBG Session with Mononoke started with uuid: * (glob)
pushing rev e3db177db1d1 to destination ssh://user@dummy/repo bookmark master_bookmark
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 0 changes to 0 files
updating bookmark master_bookmark
$ hg hide -r . -q && hgmn up master_bookmark -q
$ log -r ":"
@ merge 10 and 12 [public;rev=25;eb388b759fde] default/master_bookmark
|\
| o 12 [public;rev=23;cd5aac4439e5]
| |
o | 11 [public;rev=22;589551466f25]
| |
o | 10 [public;rev=21;c573a92e1179]
|/
o 9 [public;rev=20;2f7cc50dc4e5]
|
o merge 6 and 7 [public;rev=18;4a0002072071]
|\
\| o (7|6) \[public;rev=17;.*\] (re)
| |
o \| (6|7) \[public;rev=16;.*\] (re)
|/
o 5 [public;rev=12;59e5396444cf]
|
| o 8 [draft;rev=19;e0f0824ca6a6]
|/
o 4 [public;rev=11;4f5a4463b24b]
|
o 3 [public;rev=10;7796136324ad]
|
o 1 [public;rev=4;c2e526aacb51]
|
o C [public;rev=2;26805aba1e60]
|
o B [public;rev=1;112478962961]
|
o A [public;rev=0;426bada5c675]