mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
026bd9f950
Summary: Done by the fix-revnum.py script. Reviewed By: singhsrb Differential Revision: D24173575 fbshipit-source-id: e4cf417be759f9898adfd4102984098474ab38a2
242 lines
5.8 KiB
Perl
242 lines
5.8 KiB
Perl
#require py2
|
|
#chg-compatible
|
|
|
|
$ configure mutation-norecord
|
|
$ enable amend copytrace rebase shelve
|
|
$ setconfig experimental.copytrace=off
|
|
|
|
$ initclient() {
|
|
> setconfig copytrace.remote=false copytrace.enablefilldb=true copytrace.fastcopytrace=true
|
|
> setconfig experimental.copytrace=off
|
|
> }
|
|
|
|
Test amend copytrace
|
|
$ hg init repo
|
|
$ initclient repo
|
|
$ cd repo
|
|
$ echo x > x
|
|
$ hg add x
|
|
$ hg ci -m initial
|
|
$ echo a > a
|
|
$ hg add a
|
|
$ hg ci -m "create a"
|
|
$ echo b > a
|
|
$ hg ci -qm "mod a"
|
|
$ hg up -q ".^"
|
|
$ hg mv a b
|
|
$ hg amend
|
|
hint[amend-restack]: descendants of 9f815da0cfb3 are left behind - use 'hg restack' to rebase them
|
|
hint[hint-ack]: use 'hg hint --ack amend-restack' to silence these hints
|
|
$ hg rebase --restack
|
|
rebasing ad25e018afa9 "mod a"
|
|
merging b and a to b
|
|
$ ls
|
|
b
|
|
x
|
|
$ cat b
|
|
a
|
|
$ hg update 'max(desc(mod))'
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cat b
|
|
b
|
|
$ cd ..
|
|
$ rm -rf repo
|
|
|
|
Test amend copytrace with multiple stacked commits
|
|
$ hg init repo
|
|
$ initclient repo
|
|
$ cd repo
|
|
$ echo x > x
|
|
$ hg add x
|
|
$ hg ci -m initial
|
|
$ echo a > a
|
|
$ echo b > b
|
|
$ echo c > c
|
|
$ hg add a b c
|
|
$ hg ci -m "create a b c"
|
|
$ echo a1 > a
|
|
$ hg ci -qm "mod a"
|
|
$ echo b2 > b
|
|
$ hg ci -qm "mod b"
|
|
$ echo c3 > c
|
|
$ hg ci -qm "mod c"
|
|
$ hg bookmark test-top
|
|
$ hg up -q '.~3'
|
|
$ hg mv a a1
|
|
$ hg mv b b2
|
|
$ hg amend
|
|
hint[amend-restack]: descendants of ec8c441da632 are left behind - use 'hg restack' to rebase them
|
|
hint[hint-ack]: use 'hg hint --ack amend-restack' to silence these hints
|
|
$ hg mv c c3
|
|
$ hg amend
|
|
$ hg rebase --restack
|
|
rebasing 797127d4e250 "mod a"
|
|
merging a1 and a to a1
|
|
rebasing e2aabbfe749a "mod b"
|
|
merging b2 and b to b2
|
|
rebasing 4f8d18558559 "mod c" (test-top)
|
|
merging c3 and c to c3
|
|
$ hg up test-top
|
|
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
(activating bookmark test-top)
|
|
$ cat a1 b2 c3
|
|
a1
|
|
b2
|
|
c3
|
|
$ cd ..
|
|
$ rm -rf repo
|
|
|
|
Test amend copytrace with multiple renames of the same file
|
|
$ hg init repo
|
|
$ initclient repo
|
|
$ cd repo
|
|
$ echo x > x
|
|
$ hg add x
|
|
$ hg ci -m initial
|
|
$ echo a > a
|
|
$ hg add a
|
|
$ hg ci -m "create a"
|
|
$ echo b > a
|
|
$ hg ci -qm "mod a"
|
|
$ hg up -q ".^"
|
|
$ hg mv a b
|
|
$ hg amend
|
|
hint[amend-restack]: descendants of 9f815da0cfb3 are left behind - use 'hg restack' to rebase them
|
|
hint[hint-ack]: use 'hg hint --ack amend-restack' to silence these hints
|
|
$ hg mv b c
|
|
$ hg amend
|
|
$ hg rebase --restack
|
|
rebasing ad25e018afa9 "mod a"
|
|
merging c and a to c
|
|
$ hg update 'max(desc(mod))'
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cat c
|
|
b
|
|
$ cd ..
|
|
$ rm -rf repo
|
|
|
|
Test amend copytrace with copies
|
|
$ hg init repo
|
|
$ initclient repo
|
|
$ cd repo
|
|
$ echo x > x
|
|
$ hg add x
|
|
$ hg ci -m initial
|
|
$ echo a > a
|
|
$ echo i > i
|
|
$ hg add a i
|
|
$ hg ci -m "create a i"
|
|
$ echo b > a
|
|
$ hg ci -qm "mod a"
|
|
$ echo j > i
|
|
$ hg ci -qm "mod i"
|
|
$ hg bookmark test-top
|
|
$ hg up -q ".~2"
|
|
$ hg cp a b
|
|
$ hg amend
|
|
hint[amend-restack]: descendants of 0157114ee1b3 are left behind - use 'hg restack' to rebase them
|
|
hint[hint-ack]: use 'hg hint --ack amend-restack' to silence these hints
|
|
$ hg cp i j
|
|
$ hg amend
|
|
$ hg cp b c
|
|
$ hg amend
|
|
$ hg rebase --restack
|
|
rebasing 6938f0d82b23 "mod a"
|
|
rebasing df8dfcb1d237 "mod i" (test-top)
|
|
$ hg up test-top
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
(activating bookmark test-top)
|
|
$ cat a b c i j
|
|
b
|
|
a
|
|
a
|
|
j
|
|
i
|
|
$ cd ..
|
|
$ rm -rf repo
|
|
|
|
Test rebase after amend deletion of copy
|
|
$ hg init repo
|
|
$ initclient repo
|
|
$ cd repo
|
|
$ echo x > x
|
|
$ hg add x
|
|
$ hg ci -m initial
|
|
$ echo a > a
|
|
$ hg add a
|
|
$ hg ci -m "create a"
|
|
$ echo b > a
|
|
$ hg ci -qm "mod a"
|
|
$ hg up -q ".^"
|
|
$ hg cp a b
|
|
$ hg amend
|
|
hint[amend-restack]: descendants of 9f815da0cfb3 are left behind - use 'hg restack' to rebase them
|
|
hint[hint-ack]: use 'hg hint --ack amend-restack' to silence these hints
|
|
$ hg rm b
|
|
$ hg amend
|
|
$ hg rebase --restack
|
|
rebasing ad25e018afa9 "mod a"
|
|
$ cd ..
|
|
$ rm -rf repo
|
|
|
|
Test failure to rebase deletion after rename
|
|
$ hg init repo
|
|
$ initclient repo
|
|
$ cd repo
|
|
$ echo x > x
|
|
$ hg add x
|
|
$ hg ci -m initial
|
|
$ echo a > a
|
|
$ hg add a
|
|
$ hg ci -m "create a"
|
|
$ echo b > a
|
|
$ hg ci -qm "mod a"
|
|
$ hg rm a
|
|
$ hg ci -m "delete a"
|
|
$ hg up -q ".~2"
|
|
$ hg mv a b
|
|
$ hg amend
|
|
hint[amend-restack]: descendants of 9f815da0cfb3 are left behind - use 'hg restack' to rebase them
|
|
hint[hint-ack]: use 'hg hint --ack amend-restack' to silence these hints
|
|
$ hg rebase --restack
|
|
rebasing ad25e018afa9 "mod a"
|
|
merging b and a to b
|
|
rebasing ba0395f0e180 "delete a"
|
|
abort: a@ba0395f0e180: not found in manifest!
|
|
[255]
|
|
$ hg rebase --abort
|
|
rebase aborted
|
|
$ cd ..
|
|
$ rm -rf repo
|
|
|
|
Test amend copytrace can be disabled
|
|
$ cat >> $HGRCPATH << EOF
|
|
> [copytrace]
|
|
> enableamendcopytrace=false
|
|
> EOF
|
|
$ hg init repo
|
|
$ initclient repo
|
|
$ cd repo
|
|
$ echo x > x
|
|
$ hg add x
|
|
$ hg ci -m initial
|
|
$ echo a > a
|
|
$ hg add a
|
|
$ hg ci -m "create a"
|
|
$ echo b > a
|
|
$ hg ci -qm "mod a"
|
|
$ hg up -q ".^"
|
|
$ hg mv a b
|
|
$ hg amend
|
|
hint[amend-restack]: descendants of 9f815da0cfb3 are left behind - use 'hg restack' to rebase them
|
|
hint[hint-ack]: use 'hg hint --ack amend-restack' to silence these hints
|
|
$ hg rebase --restack
|
|
rebasing ad25e018afa9 "mod a"
|
|
other [source] changed a which local [dest] deleted
|
|
hint: if this is due to a renamed file, you can manually input the renamed path, or re-run the command using --config=experimental.copytrace=on to make hg figure out renamed path automatically (which is very slow, and you will need to be patient)
|
|
use (c)hanged version, leave (d)eleted, or leave (u)nresolved, or input (r)enamed path? u
|
|
unresolved conflicts (see hg resolve, then hg rebase --continue)
|
|
[1]
|
|
$ cd ..
|
|
$ rm -rf repo
|