sapling/tests/test-resolve.t

113 lines
2.3 KiB
Perl
Raw Normal View History

2010-08-30 09:06:18 +04:00
test that a commit clears the merge state.
$ hg init repo
$ cd repo
$ echo foo > file1
$ echo foo > file2
$ hg commit -Am 'add files'
adding file1
adding file2
2010-08-30 09:06:18 +04:00
$ echo bar >> file1
$ echo bar >> file2
$ hg commit -Am 'append bar to files'
2010-08-30 09:06:18 +04:00
create a second head with conflicting edits
2010-08-30 09:06:18 +04:00
$ hg up -C 0
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo baz >> file1
$ echo baz >> file2
$ hg commit -Am 'append baz to files'
2010-08-30 09:06:18 +04:00
created new head
create a third head with no conflicting edits
$ hg up -qC 0
$ echo foo > file3
$ hg commit -Am 'add non-conflicting file'
adding file3
created new head
2010-08-30 09:06:18 +04:00
failing merge
$ hg up -qC 2
$ hg merge --tool=internal:fail 1
0 files updated, 0 files merged, 0 files removed, 2 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
2010-09-17 02:51:32 +04:00
[1]
2010-08-30 09:06:18 +04:00
resolve -l should contain unresolved entries
$ hg resolve -l
U file1
U file2
resolving an unknown path should emit a warning
$ hg resolve -m does-not-exist
arguments do not match paths that need resolving
resolve the failure
$ echo resolved > file1
$ hg resolve -m file1
resolve -l should show resolved file as resolved
$ hg resolve -l
R file1
U file2
resolve -m without paths should mark all resolved
$ hg resolve -m
(no more unresolved files)
2010-08-30 09:06:18 +04:00
$ hg commit -m 'resolved'
resolve -l should be empty after commit
2010-08-30 09:06:18 +04:00
$ hg resolve -l
resolve --all should abort when no merge in progress
$ hg resolve --all
abort: resolve command not applicable when not merging
[255]
resolve -m should abort when no merge in progress
$ hg resolve -m
abort: resolve command not applicable when not merging
[255]
2010-08-30 09:06:18 +04:00
set up conflict-free merge
$ hg up -qC 3
$ hg merge 1
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
BROKEN: resolve --all should do nothing in merge without conflicts
$ hg resolve --all
abort: resolve command not applicable when not merging
[255]
BROKEN: resolve -m should do nothing in merge without conflicts
$ hg resolve -m
abort: resolve command not applicable when not merging
[255]
2010-08-30 09:06:18 +04:00
test crashed merge with empty mergestate
$ hg up -qC 1
2010-08-30 09:06:18 +04:00
$ mkdir .hg/merge
$ touch .hg/merge/state
resolve -l should be empty
2010-08-30 09:06:18 +04:00
$ hg resolve -l
$ cd ..