[PATCH 1 of 5 V2] merge: add conflict marker formatter
Matt Mackall
mpm at selenic.com
Mon May 12 09:28:05 CDT 2014
On Fri, 2014-05-09 at 19:48 -0700, Durham Goode wrote:
> diff --git a/mercurial/templates/raw/conflictmarker.tmpl b/mercurial/templates/raw/conflictmarker.tmpl
> new file mode 100644
> --- /dev/null
> +++ b/mercurial/templates/raw/conflictmarker.tmpl
> @@ -0,0 +1,1 @@
> +{shortest(node)}{ifeq(tags, "tip", " ", " {tags}")}{if(bookmarks, " {bookmarks}")}{ifeq(branch, "default", "", " {branch}")} {author|user} - "{desc|firstline}"
> \ No newline at end of file
Sticking this in the web templates is a bit unfortunate. I'd frankly
prefer to have this live only in the code until we figure out a way to
expose it more generically.
I'm also a little concerned about using all the bells and whistles by
default. No one outside of Facebook has seen shortest(node) come out of
any Mercurial command yet, for instance, and people just getting started
are liable to be confused by the tiny hex string that results. I think
something that shows commit/branch?/bookmark?/author is sufficient.
Lastly, there's no apparent way to switch back to completely stock
behavior because empty strings everywhere will still give "<<<<<< local:
". Hopefully no one has tools that are picky about these markers.
> diff --git a/mercurial/templates/raw/map b/mercurial/templates/raw/map
> --- a/mercurial/templates/raw/map
> +++ b/mercurial/templates/raw/map
> @@ -8,6 +8,7 @@
> header = ''
> footer = ''
> changeset = changeset.tmpl
> +conflictmarker = conflictmarker.tmpl
> difflineplus = '{line}'
> difflineminus = '{line}'
> difflineat = '{line}'
> diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t
> --- a/tests/test-commit-amend.t
> +++ b/tests/test-commit-amend.t
> @@ -589,7 +589,7 @@
> no more unresolved files
> $ hg ci -m 'merge bar'
> $ hg log --config diff.git=1 -pr .
> - changeset: 23:d51446492733
> + changeset: 23:a0697e6a1df3
> tag: tip
> parent: 22:30d96aeaf27b
> parent: 21:1aa437659d19
> @@ -604,11 +604,11 @@
> --- a/cc
> +++ b/cc
> @@ -1,1 +1,5 @@
> - +<<<<<<< local
> + +<<<<<<< local: 30d9 test - "aa"
> dd
> +=======
> +cc
> - +>>>>>>> other
> + +>>>>>>> other: 1aa4 bar test - "aazzcc"
> diff --git a/z b/zz
> rename from z
> rename to zz
> @@ -621,7 +621,7 @@
> cc not renamed
> $ hg ci --amend -m 'merge bar (amend message)'
> $ hg log --config diff.git=1 -pr .
> - changeset: 24:59de3dce7a79
> + changeset: 24:77e48bc7cd1a
> tag: tip
> parent: 22:30d96aeaf27b
> parent: 21:1aa437659d19
> @@ -636,11 +636,11 @@
> --- a/cc
> +++ b/cc
> @@ -1,1 +1,5 @@
> - +<<<<<<< local
> + +<<<<<<< local: 30d9 test - "aa"
> dd
> +=======
> +cc
> - +>>>>>>> other
> + +>>>>>>> other: 1aa4 bar test - "aazzcc"
> diff --git a/z b/zz
> rename from z
> rename to zz
> @@ -654,7 +654,7 @@
> $ hg mv zz z
> $ hg ci --amend -m 'merge bar (undo rename)'
> $ hg log --config diff.git=1 -pr .
> - changeset: 26:7fb89c461f81
> + changeset: 26:7716e5d17e50
> tag: tip
> parent: 22:30d96aeaf27b
> parent: 21:1aa437659d19
> @@ -669,11 +669,11 @@
> --- a/cc
> +++ b/cc
> @@ -1,1 +1,5 @@
> - +<<<<<<< local
> + +<<<<<<< local: 30d9 test - "aa"
> dd
> +=======
> +cc
> - +>>>>>>> other
> + +>>>>>>> other: 1aa4 bar test - "aazzcc"
>
> $ hg debugrename z
> z not renamed
> @@ -690,9 +690,9 @@
> $ echo aa >> aaa
> $ hg ci -m 'merge bar again'
> $ hg log --config diff.git=1 -pr .
> - changeset: 28:982d7a34ffee
> + changeset: 28:cc6af7f06777
> tag: tip
> - parent: 26:7fb89c461f81
> + parent: 26:7716e5d17e50
> parent: 27:4c94d5bc65f5
> user: test
> date: Thu Jan 01 00:00:00 1970 +0000
> @@ -725,9 +725,9 @@
> $ hg mv aaa aa
> $ hg ci --amend -m 'merge bar again (undo rename)'
> $ hg log --config diff.git=1 -pr .
> - changeset: 30:522688c0e71b
> + changeset: 30:e161acc118ba
> tag: tip
> - parent: 26:7fb89c461f81
> + parent: 26:7716e5d17e50
> parent: 27:4c94d5bc65f5
> user: test
> date: Thu Jan 01 00:00:00 1970 +0000
> @@ -765,9 +765,9 @@
> use (c)hanged version or (d)elete? c
> $ hg ci -m 'merge bar (with conflicts)'
> $ hg log --config diff.git=1 -pr .
> - changeset: 33:5f9904c491b8
> + changeset: 33:6e6ca29334c1
> tag: tip
> - parent: 32:01780b896f58
> + parent: 32:774d2712d079
> parent: 31:67db8847a540
> user: test
> date: Thu Jan 01 00:00:00 1970 +0000
> @@ -777,9 +777,9 @@
> $ hg rm aa
> $ hg ci --amend -m 'merge bar (with conflicts, amended)'
> $ hg log --config diff.git=1 -pr .
> - changeset: 35:6ce0c89781a3
> + changeset: 35:d05a594c39d2
> tag: tip
> - parent: 32:01780b896f58
> + parent: 32:774d2712d079
> parent: 31:67db8847a540
> user: test
> date: Thu Jan 01 00:00:00 1970 +0000
> diff --git a/tests/test-conflict.t b/tests/test-conflict.t
> --- a/tests/test-conflict.t
> +++ b/tests/test-conflict.t
> @@ -10,7 +10,7 @@
> $ hg commit -m branch2
> created new head
>
> - $ hg merge 1
> + $ hg merge 1 --traceback
> merging a
> warning: conflicts during merge.
> merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
> @@ -22,11 +22,11 @@
> 32e80765d7fe+75234512624c+ tip
>
> $ cat a
> - <<<<<<< local
> + <<<<<<< local: 32e8 test - "branch2"
> something else
> =======
> something
> - >>>>>>> other
> + >>>>>>> other: 7523 test - "branch1"
>
> $ hg status
> M a
> diff --git a/tests/test-keyword.t b/tests/test-keyword.t
> --- a/tests/test-keyword.t
> +++ b/tests/test-keyword.t
> @@ -1049,11 +1049,11 @@
> [1]
> $ cat m
> $Id$
> - <<<<<<< local
> + <<<<<<< local: 88a8 test - "8bar"
> bar
> =======
> foo
> - >>>>>>> other
> + >>>>>>> other: 85d2 test - "simplemerge"
>
> resolve to local
>
> diff --git a/tests/test-merge-revert2.t b/tests/test-merge-revert2.t
> --- a/tests/test-merge-revert2.t
> +++ b/tests/test-merge-revert2.t
> @@ -57,11 +57,11 @@
> @@ -1,3 +1,7 @@
> added file1
> another line of text
> - +<<<<<<< local
> + +<<<<<<< local: c3fa test - "added file1 and file2"
> +changed file1 different
> +=======
> changed file1
> - +>>>>>>> other
> + +>>>>>>> other: dfab test - "changed file1"
>
> $ hg status
> M file1
> diff --git a/tests/test-merge-tools.t b/tests/test-merge-tools.t
> --- a/tests/test-merge-tools.t
> +++ b/tests/test-merge-tools.t
> @@ -66,11 +66,11 @@
> [1]
> $ aftermerge
> # cat f
> - <<<<<<< local
> + <<<<<<< local: ef83 test - "revision 1"
> revision 1
> =======
> revision 2
> - >>>>>>> other
> + >>>>>>> other: 0185 test - "revision 2"
> space
> # hg stat
> M f
> diff --git a/tests/test-merge-types.t b/tests/test-merge-types.t
> --- a/tests/test-merge-types.t
> +++ b/tests/test-merge-types.t
> @@ -290,18 +290,18 @@
> U h
> $ tellmeabout a
> a is a plain file with content:
> - <<<<<<< local
> + <<<<<<< local: 0139 test - "2"
> 2
> =======
> 1
> - >>>>>>> other
> + >>>>>>> other: 97e2 test - "1"
> $ tellmeabout b
> b is a plain file with content:
> - <<<<<<< local
> + <<<<<<< local: 0139 test - "2"
> 2
> =======
> 1
> - >>>>>>> other
> + >>>>>>> other: 97e2 test - "1"
> $ tellmeabout c
> c is a plain file with content:
> x
> @@ -345,18 +345,18 @@
> [1]
> $ tellmeabout a
> a is a plain file with content:
> - <<<<<<< local
> + <<<<<<< local: 97e2 test - "1"
> 1
> =======
> 2
> - >>>>>>> other
> + >>>>>>> other: 0139 test - "2"
> $ tellmeabout b
> b is an executable file with content:
> - <<<<<<< local
> + <<<<<<< local: 97e2 test - "1"
> 1
> =======
> 2
> - >>>>>>> other
> + >>>>>>> other: 0139 test - "2"
> $ tellmeabout c
> c is an executable file with content:
> x
> diff --git a/tests/test-merge7.t b/tests/test-merge7.t
> --- a/tests/test-merge7.t
> +++ b/tests/test-merge7.t
> @@ -98,11 +98,11 @@
>
> $ cat test.txt
> one
> - <<<<<<< local
> + <<<<<<< local: 50c3 test - "Merge 1"
> two-point-five
> =======
> two-point-one
> - >>>>>>> other
> + >>>>>>> other: 40d1 test - "two -> two-point-one"
> three
>
> $ hg debugindex test.txt
> diff --git a/tests/test-shelve.t b/tests/test-shelve.t
> --- a/tests/test-shelve.t
> +++ b/tests/test-shelve.t
> @@ -210,11 +210,11 @@
> +++ b/a/a
> @@ -1,2 +1,6 @@
> a
> - +<<<<<<< local
> + +<<<<<<< local: * shelve - "pending changes temporary commit" (glob)
> c
> +=======
> +a
> - +>>>>>>> other
> + +>>>>>>> other: * shelve - "changes to '[mq]: second.patch'" (glob)
> diff --git a/b.rename/b b/b.rename/b
> new file mode 100644
> --- /dev/null
> @@ -604,11 +604,11 @@
> M f
> ? f.orig
> $ cat f
> - <<<<<<< local
> + <<<<<<< local: 5f6b shelve - "pending changes temporary commit"
> g
> =======
> f
> - >>>>>>> other
> + >>>>>>> other: 23b2 shelve - "changes to 'commit stuff'"
> $ cat f.orig
> g
> $ hg unshelve --abort
> @@ -647,11 +647,11 @@
> M f
> ? f.orig
> $ cat f
> - <<<<<<< local
> + <<<<<<< local: 6b56 test - "intermediate other change"
> g
> =======
> f
> - >>>>>>> other
> + >>>>>>> other: 23b2 shelve - "changes to 'commit stuff'"
> $ cat f.orig
> g
> $ hg unshelve --abort
> diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t
> --- a/tests/test-subrepo.t
> +++ b/tests/test-subrepo.t
> @@ -298,11 +298,11 @@
> should conflict
>
> $ cat t/t
> - <<<<<<< local
> + <<<<<<< local: 20a0 test - "10"
> conflict
> =======
> t3
> - >>>>>>> other
> + >>>>>>> other: 7af3 test - "7"
>
> clone
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list