sapling/eden/scm/tests/test-amend-restack-multidest.t
Jun Wu 9bf6b674a6 config: use Rust graph render as default
Summary: Change the legacy Python graph render to Rust renderer.

Reviewed By: DurhamG

Differential Revision: D24317802

fbshipit-source-id: 4c3dc3a6dd02b7ebe79596a8e77f4b6b139d2e20
2020-10-19 17:07:30 -07:00

160 lines
3.0 KiB
Perl

#chg-compatible
$ configure mutation-norecord
$ enable amend rebase
$ mkcommit() {
> echo "$1" > "$1"
> hg add "$1"
> hg ci -m "add $1"
> }
Restack does topological sort and only rebases "D" once:
$ newrepo
$ drawdag<<'EOS'
> D
> |
> C
> |
> B
> |
> A
> EOS
$ hg update $B -q
$ hg commit --amend -m B2 -q --no-rebase 2>/dev/null
$ B2=`hg log -r . -T '{node}'`
$ hg rebase -r $C -d $B2 -q
$ hg commit --amend -m B3 -q --no-rebase 2>/dev/null
$ B3=`hg log -r . -T '{node}'`
$ showgraph
@ da1d4fe88e84 B3
o ca53c8ceb284 C
x fdcbd16a7d51 B2
o f585351a92f8 D
x 26805aba1e60 C
x 112478962961 B
o 426bada5c675 A
$ hg rebase --restack
rebasing ca53c8ceb284 "C"
rebasing f585351a92f8 "D"
$ showgraph
o 981f3734c126 D
o bab9c1b0a249 C
@ da1d4fe88e84 B3
o 426bada5c675 A
Restack will only restack the "current" stack and leave other stacks untouched.
$ newrepo
$ drawdag<<'EOS'
> D H K
> | | |
> B C F G J L # amend: B -> C
> |/ |/ |/ # amend: F -> G
> A E I Z # amend: J -> L
> EOS
$ hg debugmakepublic -r $Z+$I+$A+$E
$ hg update -q $Z
$ hg rebase --restack
nothing to restack
[1]
$ hg update -q $D
$ hg rebase --restack
rebasing be0ef73c17ad "D"
$ hg update -q $G
$ hg rebase --restack
rebasing cc209258a732 "H"
$ hg update -q $I
$ hg rebase --restack
rebasing 59760668f0e1 "K"
$ showgraph
o c97827ce80f6 K
o 47528c67632b H
o 5cb8c357af9e D
o a975bfef72d2 L
o 889f49cd29f6 G
o dc0947a82db8 C
o 48b9aae0607f Z
@ 02a9ac6a13a6 I
o e8e0a81d950f E
o 426bada5c675 A
Restack could resume after resolving merge conflicts.
$ newrepo
$ drawdag<<'EOS'
> F G # F/C = F # cause conflict
> | | # G/E = G # cause conflict
> B C D E # amend: B -> C
> |/ |/ # amend: D -> E
> | /
> | /
> | /
> |/
> A
> EOS
$ hg update -q $F
$ hg rebase --restack
rebasing ed8545a5c22a "F"
merging C
warning: 1 conflicts while merging C! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
[1]
$ echo R > C
$ hg resolve --mark -q
continue: hg rebase --continue
$ hg rebase --continue
rebasing ed8545a5c22a "F"
rebasing 4d1ef7d890c5 "G"
merging E
warning: 1 conflicts while merging E! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
[1]
$ echo R > E
$ hg resolve --mark -q
continue: hg rebase --continue
$ hg rebase --continue
already rebased ed8545a5c22a "F" as 2282fe522d5c
rebasing 4d1ef7d890c5 "G"
$ showgraph
o 3b00517bf275 G
@ 2282fe522d5c F
o 7fb047a69f22 E
o dc0947a82db8 C
o 426bada5c675 A