tests: demonstrate how conflict markers end up $local *and* $output
When a merge tool is configured to keep conflict markers, they are
supposed to be written to `$local` if `$output` is not mentioned in
the tool's `merge-tools.<tool>.args` config, and in `$output` if it is
mentioned. However, I broke the latter case in D12190.
Differential Revision: https://phab.mercurial-scm.org/D12378
--- a/tests/test-merge-tools.t Mon Mar 14 17:57:03 2022 +0100
+++ b/tests/test-merge-tools.t Tue Mar 15 13:40:45 2022 -0700
@@ -1213,6 +1213,46 @@
# hg resolve --list
R f
+with premerge=keep and $output in tool args, $local does not have markers:
+
+ $ beforemerge
+ [merge-tools]
+ false.whatever=
+ true.priority=1
+ true.executable=cat
+ # hg update -C 1
+ $ hg merge -r 4 --config merge-tools.true.premerge=keep --config 'merge-tools.true.args=$base $local $other $output'
+ merging f
+ revision 0
+ space
+ <<<<<<< working copy: ef83787e2614 - test: revision 1 (known-bad-output !)
+ revision 1
+ space
+ ======= (known-bad-output !)
+ revision 4 (known-bad-output !)
+ >>>>>>> merge rev: 81448d39c9a0 - test: revision 4 (known-bad-output !)
+ revision 4
+ <<<<<<< working copy: ef83787e2614 - test: revision 1
+ revision 1
+ space
+ =======
+ revision 4
+ >>>>>>> merge rev: 81448d39c9a0 - test: revision 4
+ 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ aftermerge
+ # cat f
+ <<<<<<< working copy: ef83787e2614 - test: revision 1
+ revision 1
+ space
+ =======
+ revision 4
+ >>>>>>> merge rev: 81448d39c9a0 - test: revision 4
+ # hg stat
+ M f
+ # hg resolve --list
+ R f
+
premerge=keep-merge3 keeps conflict markers with base content:
$ beforemerge