test-diff-color.t
416 lines
| 11.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-diff-color.t
Matt Mackall
|
r12415 | Setup | ||
Yuya Nishihara
|
r23172 | $ cat <<EOF >> $HGRCPATH | ||
Pierre-Yves David
|
r31110 | > [ui] | ||
Pierre-Yves David
|
r32104 | > color = yes | ||
Pierre-Yves David
|
r32103 | > formatted = always | ||
Matt Harbison
|
r32122 | > paginate = never | ||
Yuya Nishihara
|
r23172 | > [color] | ||
> mode = ansi | ||||
> EOF | ||||
Matt Mackall
|
r12415 | $ hg init repo | ||
$ cd repo | ||||
$ cat > a <<EOF | ||||
> c | ||||
> c | ||||
> a | ||||
> a | ||||
> b | ||||
> a | ||||
> a | ||||
> c | ||||
> c | ||||
> EOF | ||||
$ hg ci -Am adda | ||||
Boris Feld
|
r39126 | \x1b[0;32madding a\x1b[0m (esc) | ||
Matt Mackall
|
r12415 | $ cat > a <<EOF | ||
> c | ||||
> c | ||||
> a | ||||
> a | ||||
> dd | ||||
> a | ||||
> a | ||||
> c | ||||
> c | ||||
> EOF | ||||
default context | ||||
Pierre-Yves David
|
r31110 | $ hg diff --nodates | ||
Mads Kiilerich
|
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
|
r12415 | c | ||
a | ||||
a | ||||
Mads Kiilerich
|
r12942 | \x1b[0;31m-b\x1b[0m (esc) | ||
\x1b[0;32m+dd\x1b[0m (esc) | ||||
Matt Mackall
|
r12415 | a | ||
a | ||||
c | ||||
Sune Foldager
|
r38682 | trailing whitespace | ||
$ cp a a.orig | ||||
Augie Fackler
|
r38775 | >>> with open('a', 'rb') as f: | ||
... data = f.read() | ||||
>>> with open('a', 'wb') as f: | ||||
Pulkit Goyal
|
r39654 | ... f.write(data.replace(b'dd', b'dd \r')) and None | ||
Sune Foldager
|
r38682 | $ hg diff --nodates | ||
\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\x1b[0;1;41m \x1b[0m\r (esc) | ||||
a | ||||
a | ||||
c | ||||
$ mv a.orig a | ||||
Pierre-Yves David
|
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
|
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
|
r12415 | --unified=2 | ||
Pierre-Yves David
|
r31110 | $ hg diff --nodates -U 2 | ||
Mads Kiilerich
|
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
|
r12415 | a | ||
a | ||||
Mads Kiilerich
|
r12942 | \x1b[0;31m-b\x1b[0m (esc) | ||
\x1b[0;32m+dd\x1b[0m (esc) | ||||
Matt Mackall
|
r12415 | a | ||
a | ||||
diffstat | ||||
Pierre-Yves David
|
r31110 | $ hg diff --stat | ||
Mads Kiilerich
|
r12942 | a | 2 \x1b[0;32m+\x1b[0m\x1b[0;31m-\x1b[0m (esc) | ||
Matt Mackall
|
r12415 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
Yuya Nishihara
|
r23172 | $ cat <<EOF >> $HGRCPATH | ||
Pierre-Yves David
|
r31110 | > [extensions] | ||
Yuya Nishihara
|
r23172 | > record = | ||
> [ui] | ||||
> interactive = true | ||||
> [diff] | ||||
> git = True | ||||
> EOF | ||||
Matt Mackall
|
r12415 | |||
Mads Kiilerich
|
r16899 | #if execbit | ||
Matt Mackall
|
r12415 | record | ||
Mads Kiilerich
|
r15442 | $ chmod +x a | ||
Pierre-Yves David
|
r31110 | $ hg record -m moda a <<EOF | ||
Matt Mackall
|
r12415 | > y | ||
> y | ||||
> EOF | ||||
Mads Kiilerich
|
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
|
r12415 | 1 hunks, 1 lines changed | ||
Mads Kiilerich
|
r22589 | \x1b[0;33mexamine changes to 'a'? [Ynesfdaq?]\x1b[0m y (esc) | ||
timeless
|
r27411 | \x1b[0;35m@@ -2,7 +2,7 @@ c\x1b[0m (esc) | ||
Matt Mackall
|
r12415 | c | ||
a | ||||
a | ||||
Mads Kiilerich
|
r12942 | \x1b[0;31m-b\x1b[0m (esc) | ||
\x1b[0;32m+dd\x1b[0m (esc) | ||||
Matt Mackall
|
r12415 | a | ||
a | ||||
c | ||||
Mads Kiilerich
|
r22589 | \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m y (esc) | ||
Mads Kiilerich
|
r15243 | |||
Matt Mackall
|
r12415 | $ echo "[extensions]" >> $HGRCPATH | ||
$ echo "mq=" >> $HGRCPATH | ||||
$ hg rollback | ||||
Gilles Moris
|
r13446 | repository tip rolled back to revision 0 (undo commit) | ||
working directory now based on revision 0 | ||||
Matt Mackall
|
r12415 | |||
qrecord | ||||
Pierre-Yves David
|
r31110 | $ hg qrecord -m moda patch <<EOF | ||
Matt Mackall
|
r12415 | > y | ||
> y | ||||
> EOF | ||||
Mads Kiilerich
|
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
|
r12415 | 1 hunks, 1 lines changed | ||
Mads Kiilerich
|
r22589 | \x1b[0;33mexamine changes to 'a'? [Ynesfdaq?]\x1b[0m y (esc) | ||
timeless
|
r27411 | \x1b[0;35m@@ -2,7 +2,7 @@ c\x1b[0m (esc) | ||
Matt Mackall
|
r12415 | c | ||
a | ||||
a | ||||
Mads Kiilerich
|
r12942 | \x1b[0;31m-b\x1b[0m (esc) | ||
\x1b[0;32m+dd\x1b[0m (esc) | ||||
Matt Mackall
|
r12415 | a | ||
a | ||||
c | ||||
Mads Kiilerich
|
r22589 | \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m y (esc) | ||
Mads Kiilerich
|
r16899 | |||
FUJIWARA Katsunori
|
r18006 | $ hg qpop -a | ||
popping patch | ||||
patch queue now empty | ||||
Mads Kiilerich
|
r16899 | #endif | ||
Mads Kiilerich
|
r16913 | |||
FUJIWARA Katsunori
|
r18006 | issue3712: test colorization of subrepo diff | ||
$ hg init sub | ||||
$ echo b > sub/b | ||||
$ hg -R sub commit -Am 'create sub' | ||||
Boris Feld
|
r39126 | \x1b[0;32madding b\x1b[0m (esc) | ||
FUJIWARA Katsunori
|
r18006 | $ echo 'sub = sub' > .hgsub | ||
$ hg add .hgsub | ||||
$ hg commit -m 'add subrepo sub' | ||||
$ echo aa >> a | ||||
$ echo bb >> sub/b | ||||
Pierre-Yves David
|
r31110 | $ hg diff -S | ||
FUJIWARA Katsunori
|
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
|
r18720 | \x1b[0;1mdiff --git a/sub/b b/sub/b\x1b[0m (esc) | ||
FUJIWARA Katsunori
|
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
|
r22460 | test tabs | ||
$ cat >> a <<EOF | ||||
> one tab | ||||
> two tabs | ||||
> end tab | ||||
> mid tab | ||||
> all tabs | ||||
> EOF | ||||
Pierre-Yves David
|
r31110 | $ hg diff --nodates | ||
Jordi Gutiérrez Hermoso
|
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
|
r31110 | $ hg diff --nodates | ||
Jordi Gutiérrez Hermoso
|
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
|
r16913 | $ cd .. | ||
Matthieu Laneuville
|
r35278 | |||
test inline color diff | ||||
$ hg init inline | ||||
$ cd inline | ||||
$ cat > file1 << EOF | ||||
> this is the first line | ||||
> this is the second line | ||||
> third line starts with space | ||||
> + starts with a plus sign | ||||
Matthieu Laneuville
|
r35329 | > this one with one tab | ||
> now with full two tabs | ||||
> now tabs everywhere, much fun | ||||
Matthieu Laneuville
|
r35278 | > | ||
> this line won't change | ||||
> | ||||
> two lines are going to | ||||
> be changed into three! | ||||
> | ||||
> three of those lines will | ||||
> collapse onto one | ||||
> (to see if it works) | ||||
> EOF | ||||
$ hg add file1 | ||||
$ hg ci -m 'commit' | ||||
Matthieu Laneuville
|
r35329 | |||
Matthieu Laneuville
|
r35278 | $ cat > file1 << EOF | ||
> that is the first paragraph | ||||
> this is the second line | ||||
> third line starts with space | ||||
> - starts with a minus sign | ||||
Matthieu Laneuville
|
r35329 | > this one with two tab | ||
> now with full three tabs | ||||
> now there are tabs everywhere, much fun | ||||
Matthieu Laneuville
|
r35278 | > | ||
> this line won't change | ||||
> | ||||
> two lines are going to | ||||
> (entirely magically, | ||||
> assuming this works) | ||||
> be changed into four! | ||||
> | ||||
> three of those lines have | ||||
> collapsed onto one | ||||
> EOF | ||||
Yuya Nishihara
|
r38610 | $ hg diff --config diff.word-diff=False --color=debug | ||
Matthieu Laneuville
|
r35278 | [diff.diffline|diff --git a/file1 b/file1] | ||
[diff.file_a|--- a/file1] | ||||
[diff.file_b|+++ b/file1] | ||||
Matthieu Laneuville
|
r35329 | [diff.hunk|@@ -1,16 +1,17 @@] | ||
Matthieu Laneuville
|
r35278 | [diff.deleted|-this is the first line] | ||
[diff.deleted|-this is the second line] | ||||
[diff.deleted|- third line starts with space] | ||||
[diff.deleted|-+ starts with a plus sign] | ||||
Matthieu Laneuville
|
r35329 | [diff.deleted|-][diff.tab| ][diff.deleted|this one with one tab] | ||
[diff.deleted|-][diff.tab| ][diff.deleted|now with full two tabs] | ||||
[diff.deleted|-][diff.tab| ][diff.deleted|now tabs][diff.tab| ][diff.deleted|everywhere, much fun] | ||||
Matthieu Laneuville
|
r35278 | [diff.inserted|+that is the first paragraph] | ||
[diff.inserted|+ this is the second line] | ||||
[diff.inserted|+third line starts with space] | ||||
[diff.inserted|+- starts with a minus sign] | ||||
Matthieu Laneuville
|
r35329 | [diff.inserted|+][diff.tab| ][diff.inserted|this one with two tab] | ||
[diff.inserted|+][diff.tab| ][diff.inserted|now with full three tabs] | ||||
[diff.inserted|+][diff.tab| ][diff.inserted|now there are tabs][diff.tab| ][diff.inserted|everywhere, much fun] | ||||
Matthieu Laneuville
|
r35278 | |||
this line won't change | ||||
two lines are going to | ||||
[diff.deleted|-be changed into three!] | ||||
[diff.inserted|+(entirely magically,] | ||||
[diff.inserted|+ assuming this works)] | ||||
[diff.inserted|+be changed into four!] | ||||
[diff.deleted|-three of those lines will] | ||||
[diff.deleted|-collapse onto one] | ||||
[diff.deleted|-(to see if it works)] | ||||
[diff.inserted|+three of those lines have] | ||||
[diff.inserted|+collapsed onto one] | ||||
Yuya Nishihara
|
r38610 | $ hg diff --config diff.word-diff=True --color=debug | ||
Matthieu Laneuville
|
r35278 | [diff.diffline|diff --git a/file1 b/file1] | ||
[diff.file_a|--- a/file1] | ||||
[diff.file_b|+++ b/file1] | ||||
Matthieu Laneuville
|
r35329 | [diff.hunk|@@ -1,16 +1,17 @@] | ||
Jun Wu
|
r37750 | [diff.deleted|-][diff.deleted.changed|this][diff.deleted.unchanged| is the first ][diff.deleted.changed|line] | ||
[diff.deleted|-][diff.deleted.unchanged|this is the second line] | ||||
[diff.deleted|-][diff.deleted.changed| ][diff.deleted.unchanged|third line starts with space] | ||||
[diff.deleted|-][diff.deleted.changed|+][diff.deleted.unchanged| starts with a ][diff.deleted.changed|plus][diff.deleted.unchanged| sign] | ||||
[diff.deleted|-][diff.tab| ][diff.deleted.unchanged|this one with ][diff.deleted.changed|one][diff.deleted.unchanged| tab] | ||||
[diff.deleted|-][diff.tab| ][diff.deleted.unchanged|now with full ][diff.deleted.changed|two][diff.deleted.unchanged| tabs] | ||||
[diff.deleted|-][diff.tab| ][diff.deleted.unchanged|now ][diff.deleted.unchanged|tabs][diff.tab| ][diff.deleted.unchanged|everywhere, much fun] | ||||
[diff.inserted|+][diff.inserted.changed|that][diff.inserted.unchanged| is the first ][diff.inserted.changed|paragraph] | ||||
[diff.inserted|+][diff.inserted.changed| ][diff.inserted.unchanged|this is the second line] | ||||
[diff.inserted|+][diff.inserted.unchanged|third line starts with space] | ||||
[diff.inserted|+][diff.inserted.changed|-][diff.inserted.unchanged| starts with a ][diff.inserted.changed|minus][diff.inserted.unchanged| sign] | ||||
[diff.inserted|+][diff.tab| ][diff.inserted.unchanged|this one with ][diff.inserted.changed|two][diff.inserted.unchanged| tab] | ||||
[diff.inserted|+][diff.tab| ][diff.inserted.unchanged|now with full ][diff.inserted.changed|three][diff.inserted.unchanged| tabs] | ||||
[diff.inserted|+][diff.tab| ][diff.inserted.unchanged|now ][diff.inserted.changed|there are ][diff.inserted.unchanged|tabs][diff.tab| ][diff.inserted.unchanged|everywhere, much fun] | ||||
Matthieu Laneuville
|
r35278 | |||
this line won't change | ||||
two lines are going to | ||||
Jun Wu
|
r37750 | [diff.deleted|-][diff.deleted.unchanged|be changed into ][diff.deleted.changed|three][diff.deleted.unchanged|!] | ||
[diff.inserted|+][diff.inserted.changed|(entirely magically,] | ||||
[diff.inserted|+][diff.inserted.changed| assuming this works)] | ||||
[diff.inserted|+][diff.inserted.unchanged|be changed into ][diff.inserted.changed|four][diff.inserted.unchanged|!] | ||||
Matthieu Laneuville
|
r35278 | |||
Jun Wu
|
r37750 | [diff.deleted|-][diff.deleted.unchanged|three of those lines ][diff.deleted.changed|will] | ||
[diff.deleted|-][diff.deleted.changed|collapse][diff.deleted.unchanged| onto one] | ||||
[diff.deleted|-][diff.deleted.changed|(to see if it works)] | ||||
[diff.inserted|+][diff.inserted.unchanged|three of those lines ][diff.inserted.changed|have] | ||||
[diff.inserted|+][diff.inserted.changed|collapsed][diff.inserted.unchanged| onto one] | ||||
Yuya Nishihara
|
r35384 | |||
multibyte character shouldn't be broken up in word diff: | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" <<'EOF' | ||
Yuya Nishihara
|
r35384 | > with open("utf8", "wb") as f: | ||
> f.write(b"blah \xe3\x82\xa2 blah\n") | ||||
> EOF | ||||
$ hg ci -Am 'add utf8 char' utf8 | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" <<'EOF' | ||
Yuya Nishihara
|
r35384 | > with open("utf8", "wb") as f: | ||
> f.write(b"blah \xe3\x82\xa4 blah\n") | ||||
> EOF | ||||
$ hg ci -m 'slightly change utf8 char' utf8 | ||||
Jun Wu
|
r37749 | |||
Yuya Nishihara
|
r38610 | $ hg diff --config diff.word-diff=True --color=debug -c. | ||
Yuya Nishihara
|
r35384 | [diff.diffline|diff --git a/utf8 b/utf8] | ||
[diff.file_a|--- a/utf8] | ||||
[diff.file_b|+++ b/utf8] | ||||
[diff.hunk|@@ -1,1 +1,1 @@] | ||||
Jun Wu
|
r37750 | [diff.deleted|-][diff.deleted.unchanged|blah ][diff.deleted.changed|\xe3\x82\xa2][diff.deleted.unchanged| blah] (esc) | ||
[diff.inserted|+][diff.inserted.unchanged|blah ][diff.inserted.changed|\xe3\x82\xa4][diff.inserted.unchanged| blah] (esc) | ||||