##// END OF EJS Templates
identify: add template support...
identify: add template support This is based on a patch proposed last year by Mathias De Maré[1], with a few changes. - Tags and bookmarks are now formatted lists, for more flexible queries. - The templater is populated whether or not [-nibtB] is specified. (Plain output is unchanged.) This seems more consistent with other templated commands. - The 'id' property is a string, instead of a list. - The parents of 'wdir()' have their own list of attributes. I left 'id' as a string because it seems very useful for generating version info. It's also a bit strange because the value and meaning changes depending on whether or not --debug is passed (short vs full hash), whether the revision is a merge or not (one hash or two, separated by a '+'), the working directory or not (node vs p1node), and local or not (remote defaults to tip, and never has '+'). The equivalent string built with {rev} seems much less useful, and I couldn't think of a reasonable name, so I left it out. The discussion seemed to be pointing towards having a list of nodes, with more than one entry for a merge. It seems simpler to give the nodes a name, and use {node} for the actual commit probed, especially now that there is a virtual node for 'wdir()'. Yuya mentioned using fm.nested() in that thread, so I did for the parent nodes. I'm not sure if the plan is to fill in all of the context attributes in these items, or if these nested items should simply be made {p1node} and {p1rev}. I used ':' as the tag separator for consistency with {tags} in the log templater. Likewise, bookmarks are separated by a space for consistency with the corresponding log template. [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-August/087039.html

File last commit:

r32122:1add41fc stable
r33051:15a79ac8 default
Show More
test-diff-color.t
261 lines | 5.1 KiB | text/troff | Tads3Lexer
/ tests / test-diff-color.t
Matt Mackall
tests: unify test-diff-color
r12415 Setup
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 > [ui]
Pierre-Yves David
color: special case 'always' in 'ui.color'...
r32104 > color = yes
Pierre-Yves David
color: turn 'ui.color' into a boolean (auto or off)...
r32103 > formatted = always
Matt Harbison
test-diff-color: disable pager for expected output on Windows (issue5555)...
r32122 > paginate = never
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 > [color]
> mode = ansi
> EOF
Matt Mackall
tests: unify test-diff-color
r12415 $ hg init repo
$ cd repo
$ cat > a <<EOF
> c
> c
> a
> a
> b
> a
> a
> c
> c
> EOF
$ hg ci -Am adda
adding a
$ cat > a <<EOF
> c
> c
> a
> a
> dd
> a
> a
> c
> c
> EOF
default context
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 $ hg diff --nodates
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;1mdiff -r cf9f4ba66af2 a\x1b[0m (esc)
\x1b[0;31;1m--- a/a\x1b[0m (esc)
\x1b[0;32;1m+++ b/a\x1b[0m (esc)
\x1b[0;35m@@ -2,7 +2,7 @@\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 c
a
a
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;31m-b\x1b[0m (esc)
\x1b[0;32m+dd\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 a
a
c
Pierre-Yves David
color: turn 'ui.color' into a boolean (auto or off)...
r32103 (check that 'ui.color=yes' match '--color=auto')
$ hg diff --nodates --config ui.formatted=no
diff -r cf9f4ba66af2 a
--- a/a
+++ b/a
@@ -2,7 +2,7 @@
c
a
a
-b
+dd
a
a
c
(check that 'ui.color=no' disable color)
$ hg diff --nodates --config ui.formatted=yes --config ui.color=no
diff -r cf9f4ba66af2 a
--- a/a
+++ b/a
@@ -2,7 +2,7 @@
c
a
a
-b
+dd
a
a
c
Pierre-Yves David
color: special case 'always' in 'ui.color'...
r32104 (check that 'ui.color=always' force color)
$ hg diff --nodates --config ui.formatted=no --config ui.color=always
\x1b[0;1mdiff -r cf9f4ba66af2 a\x1b[0m (esc)
\x1b[0;31;1m--- a/a\x1b[0m (esc)
\x1b[0;32;1m+++ b/a\x1b[0m (esc)
\x1b[0;35m@@ -2,7 +2,7 @@\x1b[0m (esc)
c
a
a
\x1b[0;31m-b\x1b[0m (esc)
\x1b[0;32m+dd\x1b[0m (esc)
a
a
c
Matt Mackall
tests: unify test-diff-color
r12415 --unified=2
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 $ hg diff --nodates -U 2
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;1mdiff -r cf9f4ba66af2 a\x1b[0m (esc)
\x1b[0;31;1m--- a/a\x1b[0m (esc)
\x1b[0;32;1m+++ b/a\x1b[0m (esc)
\x1b[0;35m@@ -3,5 +3,5 @@\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 a
a
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;31m-b\x1b[0m (esc)
\x1b[0;32m+dd\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 a
a
diffstat
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 $ hg diff --stat
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 a | 2 \x1b[0;32m+\x1b[0m\x1b[0;31m-\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 1 files changed, 1 insertions(+), 1 deletions(-)
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 > [extensions]
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 > record =
> [ui]
> interactive = true
> [diff]
> git = True
> EOF
Matt Mackall
tests: unify test-diff-color
r12415
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Matt Mackall
tests: unify test-diff-color
r12415 record
Mads Kiilerich
tests: use 'hghave execbit' for tests that manipulate x bit in file system
r15442 $ chmod +x a
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 $ hg record -m moda a <<EOF
Matt Mackall
tests: unify test-diff-color
r12415 > y
> y
> EOF
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc)
\x1b[0;36;1mold mode 100644\x1b[0m (esc)
\x1b[0;36;1mnew mode 100755\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 1 hunks, 1 lines changed
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 \x1b[0;33mexamine changes to 'a'? [Ynesfdaq?]\x1b[0m y (esc)
timeless
record: turn on showfunc...
r27411 \x1b[0;35m@@ -2,7 +2,7 @@ c\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 c
a
a
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;31m-b\x1b[0m (esc)
\x1b[0;32m+dd\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 a
a
c
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m y (esc)
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-diff-color
r12415 $ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 0 (undo commit)
working directory now based on revision 0
Matt Mackall
tests: unify test-diff-color
r12415
qrecord
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 $ hg qrecord -m moda patch <<EOF
Matt Mackall
tests: unify test-diff-color
r12415 > y
> y
> EOF
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc)
\x1b[0;36;1mold mode 100644\x1b[0m (esc)
\x1b[0;36;1mnew mode 100755\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 1 hunks, 1 lines changed
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 \x1b[0;33mexamine changes to 'a'? [Ynesfdaq?]\x1b[0m y (esc)
timeless
record: turn on showfunc...
r27411 \x1b[0;35m@@ -2,7 +2,7 @@ c\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 c
a
a
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 \x1b[0;31m-b\x1b[0m (esc)
\x1b[0;32m+dd\x1b[0m (esc)
Matt Mackall
tests: unify test-diff-color
r12415 a
a
c
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m y (esc)
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899
FUJIWARA Katsunori
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)...
r18006 $ hg qpop -a
popping patch
patch queue now empty
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #endif
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
FUJIWARA Katsunori
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)...
r18006 issue3712: test colorization of subrepo diff
$ hg init sub
$ echo b > sub/b
$ hg -R sub commit -Am 'create sub'
adding b
$ echo 'sub = sub' > .hgsub
$ hg add .hgsub
$ hg commit -m 'add subrepo sub'
$ echo aa >> a
$ echo bb >> sub/b
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 $ hg diff -S
FUJIWARA Katsunori
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)...
r18006 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc)
\x1b[0;31;1m--- a/a\x1b[0m (esc)
\x1b[0;32;1m+++ b/a\x1b[0m (esc)
\x1b[0;35m@@ -7,3 +7,4 @@\x1b[0m (esc)
a
c
c
\x1b[0;32m+aa\x1b[0m (esc)
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 \x1b[0;1mdiff --git a/sub/b b/sub/b\x1b[0m (esc)
FUJIWARA Katsunori
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)...
r18006 \x1b[0;31;1m--- a/sub/b\x1b[0m (esc)
\x1b[0;32;1m+++ b/sub/b\x1b[0m (esc)
\x1b[0;35m@@ -1,1 +1,2 @@\x1b[0m (esc)
b
\x1b[0;32m+bb\x1b[0m (esc)
Jordi Gutiérrez Hermoso
patch: enable diff.tab markup for the color extension...
r22460 test tabs
$ cat >> a <<EOF
> one tab
> two tabs
> end tab
> mid tab
> all tabs
> EOF
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 $ hg diff --nodates
Jordi Gutiérrez Hermoso
patch: enable diff.tab markup for the color extension...
r22460 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc)
\x1b[0;31;1m--- a/a\x1b[0m (esc)
\x1b[0;32;1m+++ b/a\x1b[0m (esc)
\x1b[0;35m@@ -7,3 +7,9 @@\x1b[0m (esc)
a
c
c
\x1b[0;32m+aa\x1b[0m (esc)
\x1b[0;32m+\x1b[0m \x1b[0;32mone tab\x1b[0m (esc)
\x1b[0;32m+\x1b[0m \x1b[0;32mtwo tabs\x1b[0m (esc)
\x1b[0;32m+end tab\x1b[0m\x1b[0;1;41m \x1b[0m (esc)
\x1b[0;32m+mid\x1b[0m \x1b[0;32mtab\x1b[0m (esc)
\x1b[0;32m+\x1b[0m \x1b[0;32mall\x1b[0m \x1b[0;32mtabs\x1b[0m\x1b[0;1;41m \x1b[0m (esc)
$ echo "[color]" >> $HGRCPATH
$ echo "diff.tab = bold magenta" >> $HGRCPATH
Pierre-Yves David
color: add a 'ui.color' option to control color behavior...
r31110 $ hg diff --nodates
Jordi Gutiérrez Hermoso
patch: enable diff.tab markup for the color extension...
r22460 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc)
\x1b[0;31;1m--- a/a\x1b[0m (esc)
\x1b[0;32;1m+++ b/a\x1b[0m (esc)
\x1b[0;35m@@ -7,3 +7,9 @@\x1b[0m (esc)
a
c
c
\x1b[0;32m+aa\x1b[0m (esc)
\x1b[0;32m+\x1b[0m\x1b[0;1;35m \x1b[0m\x1b[0;32mone tab\x1b[0m (esc)
\x1b[0;32m+\x1b[0m\x1b[0;1;35m \x1b[0m\x1b[0;32mtwo tabs\x1b[0m (esc)
\x1b[0;32m+end tab\x1b[0m\x1b[0;1;41m \x1b[0m (esc)
\x1b[0;32m+mid\x1b[0m\x1b[0;1;35m \x1b[0m\x1b[0;32mtab\x1b[0m (esc)
\x1b[0;32m+\x1b[0m\x1b[0;1;35m \x1b[0m\x1b[0;32mall\x1b[0m\x1b[0;1;35m \x1b[0m\x1b[0;32mtabs\x1b[0m\x1b[0;1;41m \x1b[0m (esc)
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..