##// END OF EJS Templates
backout: deprecate/hide support for backing out merges...
backout: deprecate/hide support for backing out merges This has never worked usefully: - it can't undo a completely unwanted merge, as it leaves the merge in the DAG - it can't undo a faulty merge as that means doing a merge correctly, not simply reverting to one or the other parent Both of these kinds of merge also require coordinated action among developers to avoid the bad merge continuing to affect future merges, so we should stop pretending that backout is of any help here. As backing out a merge now requires a hidden option, it can't be done by accident, but will continue to 'work' for anyone who's already dependent on --parent for some unknown reason.

File last commit:

r15211:1209de02 default
r15211:1209de02 default
Show More
test-backout.t
288 lines | 6.0 KiB | text/troff | Tads3Lexer
Martin Geisler
tests: unify test-backout
r11856 $ hg init basic
$ cd basic
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 should complain
Martin Geisler
tests: unify test-backout
r11856
$ hg backout
abort: please specify a revision to backout
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-backout
r11856 $ hg backout -r 0 0
abort: please specify just one revision
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-backout
r11856
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 basic operation
Martin Geisler
tests: unify test-backout
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
backout: add --tool argument for specifying merge tool
r12810 $ hg backout -d '2 0' tip --tool=true
Martin Geisler
tests: unify test-backout
r11856 reverting a
changeset 2:2929462c3dff backs out changeset 1:a820f4f40a57
$ cat a
a
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 file that was removed is recreated
Martin Geisler
tests: unify test-backout
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
backout: add --tool argument for specifying merge tool
r12810 $ hg backout -d '2 0' tip --tool=true
Martin Geisler
tests: unify test-backout
r11856 adding a
changeset 2:de31bdc76c0d backs out changeset 1:76862dcce372
$ cat a
content
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 backout of backout is as if nothing happened
Martin Geisler
tests: unify test-backout
r11856
Steve Borho
backout: add --tool argument for specifying merge tool
r12810 $ hg backout -d '3 0' --merge tip --tool=true
Martin Geisler
tests: unify test-backout
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
tests: fix a bunch of pointless #s in unified tests
r12328 across branch
Martin Geisler
tests: unify test-backout
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
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-backout
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
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-backout
r11856
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 backout with merge
Martin Geisler
tests: unify test-backout
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
backout: add --tool argument for specifying merge tool
r12810 $ hg backout --merge -d '3 0' 1 --tool=true
Martin Geisler
tests: unify test-backout
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
tests: fix a bunch of pointless #s in unified tests
r12328 backout should not back out subsequent changesets
Martin Geisler
tests: unify test-backout
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
backout: provide linear backout as a default (without --merge option)...
r12727
without --merge
Steve Borho
backout: add --tool argument for specifying merge tool
r12810 $ hg backout -d '3 0' 1 --tool=true
Martin Geisler
tests: unify test-backout
r11856 reverting a
Gilles Moris
backout: provide linear backout as a default (without --merge option)...
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
backout: add --tool argument for specifying merge tool
r12810 $ hg backout --merge -d '3 0' 1 --tool=true
Gilles Moris
backout: provide linear backout as a default (without --merge option)...
r12727 reverting a
Martin Geisler
tests: unify test-backout
r11856 created new head
changeset 3:3202beb76721 backs out changeset 1:22bca4c721e5
Gilles Moris
backout: provide linear backout as a default (without --merge option)...
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
tests: unify test-backout
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
tests: add exit codes to unified tests
r12316 [1]
Martin Geisler
tests: unify test-backout
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
tests: fix a bunch of pointless #s in unified tests
r12328 backout of merge should fail
Martin Geisler
tests: unify test-backout
r11856
$ hg backout 4
Matt Mackall
backout: deprecate/hide support for backing out merges...
r15211 abort: cannot backout a merge changeset
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-backout
r11856
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 backout of merge with bad parent should fail
Martin Geisler
tests: unify test-backout
r11856
$ hg backout --parent 0 4
abort: cb9a9f314b8b is not a parent of b2f3bb92043e
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-backout
r11856
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 backout of non-merge with parent should fail
Martin Geisler
tests: unify test-backout
r11856
$ hg backout --parent 0 3
abort: cannot use --parent on non-merge changeset
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-backout
r11856
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 backout with valid parent should be ok
Martin Geisler
tests: unify test-backout
r11856
Steve Borho
backout: add --tool argument for specifying merge tool
r12810 $ hg backout -d '5 0' --parent 2 4 --tool=true
Martin Geisler
tests: unify test-backout
r11856 removing d
changeset 5:10e5328c8435 backs out changeset 4:b2f3bb92043e
$ hg rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 4 (undo commit)
working directory now based on revision 4
Martin Geisler
tests: unify test-backout
r11856 $ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Steve Borho
backout: add --tool argument for specifying merge tool
r12810 $ hg backout -d '6 0' --parent 3 4 --tool=true
Martin Geisler
tests: unify test-backout
r11856 removing c
changeset 5:033590168430 backs out changeset 4:b2f3bb92043e
$ cd ..
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 named branches
Martin Geisler
tests: unify test-backout
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
backout: provide linear backout as a default (without --merge option)...
r12727
without --merge
Steve Borho
backout: add --tool argument for specifying merge tool
r12810 $ hg backout -r 1 --tool=true
Gilles Moris
backout: provide linear backout as a default (without --merge option)...
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
backout: add --tool argument for specifying merge tool
r12810 $ hg backout --merge -d '3 0' -r 1 -m 'backout on branch1' --tool=true
Martin Geisler
tests: unify test-backout
r11856 removing file1
created new head
changeset 3:d4e8f6db59fb backs out changeset 1:bf1602f437f3
Gilles Moris
backout: provide linear backout as a default (without --merge option)...
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
tests: unify test-backout
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