test-backout.t
288 lines
| 6.0 KiB
| text/troff
|
Tads3Lexer
/ tests / test-backout.t
Martin Geisler
|
r11856 | $ hg init basic | ||
$ cd basic | ||||
Matt Mackall
|
r12328 | should complain | ||
Martin Geisler
|
r11856 | |||
$ hg backout | ||||
abort: please specify a revision to backout | ||||
Matt Mackall
|
r12316 | [255] | ||
Martin Geisler
|
r11856 | $ hg backout -r 0 0 | ||
abort: please specify just one revision | ||||
Matt Mackall
|
r12316 | [255] | ||
Martin Geisler
|
r11856 | |||
Matt Mackall
|
r12328 | basic operation | ||
Martin Geisler
|
r11856 | |||
$ echo a > a | ||||
$ hg commit -d '0 0' -A -m a | ||||
adding a | ||||
$ echo b >> a | ||||
$ hg commit -d '1 0' -m b | ||||
Steve Borho
|
r12810 | $ hg backout -d '2 0' tip --tool=true | ||
Martin Geisler
|
r11856 | reverting a | ||
changeset 2:2929462c3dff backs out changeset 1:a820f4f40a57 | ||||
$ cat a | ||||
a | ||||
Matt Mackall
|
r12328 | file that was removed is recreated | ||
Martin Geisler
|
r11856 | |||
$ cd .. | ||||
$ hg init remove | ||||
$ cd remove | ||||
$ echo content > a | ||||
$ hg commit -d '0 0' -A -m a | ||||
adding a | ||||
$ hg rm a | ||||
$ hg commit -d '1 0' -m b | ||||
Steve Borho
|
r12810 | $ hg backout -d '2 0' tip --tool=true | ||
Martin Geisler
|
r11856 | adding a | ||
changeset 2:de31bdc76c0d backs out changeset 1:76862dcce372 | ||||
$ cat a | ||||
content | ||||
Matt Mackall
|
r12328 | backout of backout is as if nothing happened | ||
Martin Geisler
|
r11856 | |||
Steve Borho
|
r12810 | $ hg backout -d '3 0' --merge tip --tool=true | ||
Martin Geisler
|
r11856 | removing a | ||
changeset 3:7f6d0f120113 backs out changeset 2:de31bdc76c0d | ||||
$ cat a 2>/dev/null || echo cat: a: No such file or directory | ||||
cat: a: No such file or directory | ||||
Matt Mackall
|
r12328 | across branch | ||
Martin Geisler
|
r11856 | |||
$ cd .. | ||||
$ hg init branch | ||||
$ cd branch | ||||
$ echo a > a | ||||
$ hg ci -Am0 | ||||
adding a | ||||
$ echo b > b | ||||
$ hg ci -Am1 | ||||
adding b | ||||
$ hg co -C 0 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
should fail | ||||
$ hg backout 1 | ||||
abort: cannot backout change on a different branch | ||||
Matt Mackall
|
r12316 | [255] | ||
Martin Geisler
|
r11856 | $ echo c > c | ||
$ hg ci -Am2 | ||||
adding c | ||||
created new head | ||||
should fail | ||||
$ hg backout 1 | ||||
abort: cannot backout change on a different branch | ||||
Matt Mackall
|
r12316 | [255] | ||
Martin Geisler
|
r11856 | |||
Matt Mackall
|
r12328 | backout with merge | ||
Martin Geisler
|
r11856 | |||
$ cd .. | ||||
$ hg init merge | ||||
$ cd merge | ||||
$ echo line 1 > a | ||||
$ echo line 2 >> a | ||||
$ hg commit -d '0 0' -A -m a | ||||
adding a | ||||
remove line 1 | ||||
$ echo line 2 > a | ||||
$ hg commit -d '1 0' -m b | ||||
$ echo line 3 >> a | ||||
$ hg commit -d '2 0' -m c | ||||
Steve Borho
|
r12810 | $ hg backout --merge -d '3 0' 1 --tool=true | ||
Martin Geisler
|
r11856 | reverting a | ||
created new head | ||||
changeset 3:26b8ccb9ad91 backs out changeset 1:5a50a024c182 | ||||
merging with changeset 3:26b8ccb9ad91 | ||||
merging a | ||||
0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg commit -d '4 0' -m d | ||||
check line 1 is back | ||||
$ cat a | ||||
line 1 | ||||
line 2 | ||||
line 3 | ||||
Matt Mackall
|
r12328 | backout should not back out subsequent changesets | ||
Martin Geisler
|
r11856 | |||
$ hg init onecs | ||||
$ cd onecs | ||||
$ echo 1 > a | ||||
$ hg commit -d '0 0' -A -m a | ||||
adding a | ||||
$ echo 2 >> a | ||||
$ hg commit -d '1 0' -m b | ||||
$ echo 1 > b | ||||
$ hg commit -d '2 0' -A -m c | ||||
adding b | ||||
Gilles Moris
|
r12727 | |||
without --merge | ||||
Steve Borho
|
r12810 | $ hg backout -d '3 0' 1 --tool=true | ||
Martin Geisler
|
r11856 | reverting a | ||
Gilles Moris
|
r12727 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
$ hg locate b | ||||
b | ||||
$ hg update -C tip | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg locate b | ||||
b | ||||
with --merge | ||||
Steve Borho
|
r12810 | $ hg backout --merge -d '3 0' 1 --tool=true | ||
Gilles Moris
|
r12727 | reverting a | ||
Martin Geisler
|
r11856 | created new head | ||
changeset 3:3202beb76721 backs out changeset 1:22bca4c721e5 | ||||
Gilles Moris
|
r12727 | merging with changeset 3:3202beb76721 | ||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
Martin Geisler
|
r11856 | $ hg locate b | ||
b | ||||
$ hg update -C tip | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg locate b | ||||
Matt Mackall
|
r12316 | [1] | ||
Martin Geisler
|
r11856 | |||
$ cd .. | ||||
$ hg init m | ||||
$ cd m | ||||
$ echo a > a | ||||
$ hg commit -d '0 0' -A -m a | ||||
adding a | ||||
$ echo b > b | ||||
$ hg commit -d '1 0' -A -m b | ||||
adding b | ||||
$ echo c > c | ||||
$ hg commit -d '2 0' -A -m b | ||||
adding c | ||||
$ hg update 1 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ echo d > d | ||||
$ hg commit -d '3 0' -A -m c | ||||
adding d | ||||
created new head | ||||
$ hg merge 2 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg commit -d '4 0' -A -m d | ||||
Matt Mackall
|
r12328 | backout of merge should fail | ||
Martin Geisler
|
r11856 | |||
$ hg backout 4 | ||||
Matt Mackall
|
r15211 | abort: cannot backout a merge changeset | ||
Matt Mackall
|
r12316 | [255] | ||
Martin Geisler
|
r11856 | |||
Matt Mackall
|
r12328 | backout of merge with bad parent should fail | ||
Martin Geisler
|
r11856 | |||
$ hg backout --parent 0 4 | ||||
abort: cb9a9f314b8b is not a parent of b2f3bb92043e | ||||
Matt Mackall
|
r12316 | [255] | ||
Martin Geisler
|
r11856 | |||
Matt Mackall
|
r12328 | backout of non-merge with parent should fail | ||
Martin Geisler
|
r11856 | |||
$ hg backout --parent 0 3 | ||||
abort: cannot use --parent on non-merge changeset | ||||
Matt Mackall
|
r12316 | [255] | ||
Martin Geisler
|
r11856 | |||
Matt Mackall
|
r12328 | backout with valid parent should be ok | ||
Martin Geisler
|
r11856 | |||
Steve Borho
|
r12810 | $ hg backout -d '5 0' --parent 2 4 --tool=true | ||
Martin Geisler
|
r11856 | removing d | ||
changeset 5:10e5328c8435 backs out changeset 4:b2f3bb92043e | ||||
$ hg rollback | ||||
Gilles Moris
|
r13446 | repository tip rolled back to revision 4 (undo commit) | ||
working directory now based on revision 4 | ||||
Martin Geisler
|
r11856 | $ hg update -C | ||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
Steve Borho
|
r12810 | $ hg backout -d '6 0' --parent 3 4 --tool=true | ||
Martin Geisler
|
r11856 | removing c | ||
changeset 5:033590168430 backs out changeset 4:b2f3bb92043e | ||||
$ cd .. | ||||
Matt Mackall
|
r12328 | named branches | ||
Martin Geisler
|
r11856 | |||
$ hg init named_branches | ||||
$ cd named_branches | ||||
$ echo default > default | ||||
$ hg ci -d '0 0' -Am default | ||||
adding default | ||||
$ hg branch branch1 | ||||
marked working directory as branch branch1 | ||||
$ echo branch1 > file1 | ||||
$ hg ci -d '1 0' -Am file1 | ||||
adding file1 | ||||
$ hg branch branch2 | ||||
marked working directory as branch branch2 | ||||
$ echo branch2 > file2 | ||||
$ hg ci -d '2 0' -Am file2 | ||||
adding file2 | ||||
Gilles Moris
|
r12727 | |||
without --merge | ||||
Steve Borho
|
r12810 | $ hg backout -r 1 --tool=true | ||
Gilles Moris
|
r12727 | removing file1 | ||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg branch | ||||
branch2 | ||||
$ hg status -A | ||||
R file1 | ||||
C default | ||||
C file2 | ||||
with --merge | ||||
$ hg update -qC | ||||
Steve Borho
|
r12810 | $ hg backout --merge -d '3 0' -r 1 -m 'backout on branch1' --tool=true | ||
Martin Geisler
|
r11856 | removing file1 | ||
created new head | ||||
changeset 3:d4e8f6db59fb backs out changeset 1:bf1602f437f3 | ||||
Gilles Moris
|
r12727 | merging with changeset 3:d4e8f6db59fb | ||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg update -q -C 2 | ||||
Martin Geisler
|
r11856 | |||
on branch2 with branch1 not merged, so file1 should still exist: | ||||
$ hg id | ||||
45bbcd363bf0 (branch2) | ||||
$ hg st -A | ||||
C default | ||||
C file1 | ||||
C file2 | ||||
on branch2 with branch1 merged, so file1 should be gone: | ||||
$ hg merge | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg ci -d '4 0' -m 'merge backout of branch1' | ||||
$ hg id | ||||
22149cdde76d (branch2) tip | ||||
$ hg st -A | ||||
C default | ||||
C file2 | ||||
on branch1, so no file1 and file2: | ||||
$ hg co -C branch1 | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg id | ||||
bf1602f437f3 (branch1) | ||||
$ hg st -A | ||||
C default | ||||
C file1 | ||||