tests: demonstrate how conflict markers end up $local *and* $output stable
authorMartin von Zweigbergk <martinvonz@google.com>
Tue, 15 Mar 2022 13:40:45 -0700
branchstable
changeset 48966 b10a944c0486
parent 48964 9ce563fb2989
child 48967 a54a866349ed
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
tests/test-merge-tools.t
--- 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