##// END OF EJS Templates
mq: use dirstateguard instead of dirstate.invalidate (qpush)...
mq: use dirstateguard instead of dirstate.invalidate (qpush) Before this patch, "mq.queue.apply()" uses "dirstate.invalidate()" as a kind of "restore .hg/dirstate to the original status" during afailure. But it just discards changes in memory, and doesn't actually restore ".hg/dirstate". Then, it can't work as expected, if "dirstate.write()" is executed while processing. This patch uses "dirstateguard" instead of "dirstate.invalidate()" to restore ".hg/dirstate" at failure even if "dirstate.write()" is executed before failure. This is a part of preparations to fix the issue that the recent (in memory) dirstate isn't visible to external processes (e.g. "precommit" hook).

File last commit:

r24127:4cb80026 default
r24996:58308dde default
Show More
test-resolve.t
170 lines | 3.6 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-resolve
r12117 test that a commit clears the merge state.
$ hg init repo
$ cd repo
Martin von Zweigbergk
test-resolve: add test resolving one of two files...
r23021 $ echo foo > file1
$ echo foo > file2
$ hg commit -Am 'add files'
adding file1
adding file2
Nicolas Dumazet
tests: unify test-resolve
r12117
Martin von Zweigbergk
test-resolve: add test resolving one of two files...
r23021 $ echo bar >> file1
$ echo bar >> file2
$ hg commit -Am 'append bar to files'
Nicolas Dumazet
tests: unify test-resolve
r12117
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022 create a second head with conflicting edits
Nicolas Dumazet
tests: unify test-resolve
r12117
$ hg up -C 0
Martin von Zweigbergk
test-resolve: add test resolving one of two files...
r23021 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'
Nicolas Dumazet
tests: unify test-resolve
r12117 created new head
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022 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
Nicolas Dumazet
tests: unify test-resolve
r12117 failing merge
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022 $ hg up -qC 2
$ hg merge --tool=internal:fail 1
Martin von Zweigbergk
test-resolve: add test resolving one of two files...
r23021 0 files updated, 0 files merged, 0 files removed, 2 files unresolved
Brodie Rao
merge: suggest 'hg up -C .' for discarding changes, not 'hg up -C'...
r12314 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-resolve
r12117
Martin von Zweigbergk
test-resolve: add test resolving one of two files...
r23021 resolve -l should contain unresolved entries
Gregory Szorc
resolve: split test...
r21263
$ hg resolve -l
Martin von Zweigbergk
test-resolve: add test resolving one of two files...
r23021 U file1
U file2
Gregory Szorc
resolve: split test...
r21263
Yuya Nishihara
resolve: port to generic templater...
r24127 $ hg resolve -l --no-status
file1
file2
Yuya Nishihara
resolve: silence warning of unknown pats for -l/--list (BC)...
r24125 resolving an unknown path should emit a warning, but not for -l
Martin von Zweigbergk
test-resolve: clarify test descriptions and consistently use "should"
r23020
Gregory Szorc
resolve: print warning when no work performed (issue4208)...
r21265 $ hg resolve -m does-not-exist
Matt Mackall
resolve: fix grammar of no matching files message
r21721 arguments do not match paths that need resolving
Yuya Nishihara
resolve: silence warning of unknown pats for -l/--list (BC)...
r24125 $ hg resolve -l does-not-exist
Gregory Szorc
resolve: print warning when no work performed (issue4208)...
r21265
Gregory Szorc
resolve: split test...
r21263 resolve the failure
Martin von Zweigbergk
test-resolve: add test resolving one of two files...
r23021 $ echo resolved > file1
$ hg resolve -m file1
resolve -l should show resolved file as resolved
$ hg resolve -l
R file1
U file2
Yuya Nishihara
resolve: port to generic templater...
r24127 $ hg resolve -l -Tjson
[
{
"path": "file1",
"status": "R"
},
{
"path": "file2",
"status": "U"
}
]
Martin von Zweigbergk
test-resolve: add test resolving one of two files...
r23021 resolve -m without paths should mark all resolved
$ hg resolve -m
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
Nicolas Dumazet
tests: unify test-resolve
r12117 $ hg commit -m 'resolved'
Martin von Zweigbergk
test-resolve: clarify test descriptions and consistently use "should"
r23020 resolve -l should be empty after commit
Nicolas Dumazet
tests: unify test-resolve
r12117
$ hg resolve -l
Siddharth Agarwal
resolve: don't abort resolve -l even when no merge is in progress...
r21541
Yuya Nishihara
resolve: port to generic templater...
r24127 $ hg resolve -l -Tjson
[
]
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022 resolve --all should abort when no merge in progress
$ hg resolve --all
abort: resolve command not applicable when not merging
[255]
Martin von Zweigbergk
test-resolve: clarify test descriptions and consistently use "should"
r23020 resolve -m should abort when no merge in progress
Siddharth Agarwal
resolve: don't abort resolve -l even when no merge is in progress...
r21541 $ hg resolve -m
Gregory Szorc
resolve: abort when not applicable (BC)...
r21264 abort: resolve command not applicable when not merging
[255]
Nicolas Dumazet
tests: unify test-resolve
r12117
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022 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)
Martin von Zweigbergk
resolve: run happily after conflict-free merge
r23024 resolve --all should do nothing in merge without conflicts
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022 $ hg resolve --all
Martin von Zweigbergk
resolve: run happily after conflict-free merge
r23024 (no more unresolved files)
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022
Martin von Zweigbergk
resolve: run happily after conflict-free merge
r23024 resolve -m should do nothing in merge without conflicts
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022
$ hg resolve -m
Martin von Zweigbergk
resolve: run happily after conflict-free merge
r23024 (no more unresolved files)
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022
Martin von Zweigbergk
test-resolve: add tests for re-merge
r23023 get back to conflicting state
$ 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
[1]
resolve without arguments should suggest --all
$ hg resolve
abort: no files or directories specified
(use --all to remerge all files)
[255]
resolve --all should re-merge all unresolved files
$ hg resolve -q --all
warning: conflicts during merge.
merging file1 incomplete! (edit conflicts, then use 'hg resolve --mark')
warning: conflicts during merge.
merging file2 incomplete! (edit conflicts, then use 'hg resolve --mark')
[1]
Augie Fackler
test-resolve.t: use redirection to /dev/null instead of grep -q
r23025 $ grep '<<<' file1 > /dev/null
$ grep '<<<' file2 > /dev/null
Martin von Zweigbergk
test-resolve: add tests for re-merge
r23023
resolve <file> should re-merge file
$ echo resolved > file1
$ hg resolve -q file1
warning: conflicts during merge.
merging file1 incomplete! (edit conflicts, then use 'hg resolve --mark')
[1]
Augie Fackler
test-resolve.t: use redirection to /dev/null instead of grep -q
r23025 $ grep '<<<' file1 > /dev/null
Martin von Zweigbergk
test-resolve: add tests for re-merge
r23023
resolve <file> should do nothing if 'file' was marked resolved
$ echo resolved > file1
$ hg resolve -m file1
$ hg resolve -q file1
$ cat file1
resolved
Nicolas Dumazet
tests: unify test-resolve
r12117 test crashed merge with empty mergestate
Martin von Zweigbergk
test-resolve: add more tests for in conflict-free states...
r23022 $ hg up -qC 1
Nicolas Dumazet
tests: unify test-resolve
r12117 $ mkdir .hg/merge
$ touch .hg/merge/state
Martin von Zweigbergk
test-resolve: clarify test descriptions and consistently use "should"
r23020 resolve -l should be empty
Nicolas Dumazet
tests: unify test-resolve
r12117
$ hg resolve -l
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..