Mercurial > hg
annotate tests/test-diff-color.t @ 37732:35632d392279
patch: implement a new worddiff algorithm
The previous worddiff algorithm has many problems. The major problem is it
does a "similarity check" that selects a subset of matched lines to do
inline diffs. It is a bad idea because:
- The "similarity check" is non-obvious to users. For example, a simple
change from "long long x" to "int64_t x" will fail the similarity check
and won't be diff-ed as expected.
- Selecting "lines" to diff won't work as people expect if there are line
wrapping changes.
- It has a sad time complexity if lines do not match, could be O(N^2)-ish.
There are other problems in implementation details.
- Lines can match across distant hunks (if the next hunk does not have
"-" lines).
- "difflib" is slow.
The solution would be removing the "similarity check", and just diff all
words in a same hunk. So no content will be missed and everything will be
diff-ed as expected. This is similar to what code review tool like
Phabricator does.
This diff implements the word diff algorithm as described above. It also
avoids difflib to be faster.
Note about colors: To be consistent, "changed inserted" parts and "purely
insertion blocks" should have a same color, since they do not exist in the
previous version. Instead of highlighting differences, this patch chooses to
dim common parts. This is also more consistent with Phabricator or GitHub
webpage. That said, the labels are defined in a way that people can still
highlight changed parts and leave purely inserted/deleted hunks use the
"non-highlighted" color.
As one example, running:
hg log -pr df50b87d8f736aff8dc281f816bddcd6f306930c mercurial/commands.py \
--config experimental.worddiff=1 --color=debug --config diff.unified=0
The previous algorithm outputs:
[diff.file_a|--- a/mercurial/commands.py Fri Mar 09 15:53:41 2018 +0100]
[diff.file_b|+++ b/mercurial/commands.py Sat Mar 10 12:33:19 2018 +0530]
[diff.hunk|@@ -2039,1 +2039,4 @@]
[diff.deleted|-][diff.deleted.highlight|@command('^forget',][diff.deleted| ][diff.deleted.highlight|walkopts,][diff.deleted| _('[OPTION]... FILE...'), inferrepo=True)]
[diff.inserted|+@command(]
[diff.inserted|+ '^forget',]
[diff.inserted|+ walkopts + dryrunopts,]
[diff.inserted|+ ][diff.inserted.highlight| ][diff.inserted| _('[OPTION]... FILE...'), inferrepo=True)]
[diff.hunk|@@ -2074,1 +2077,3 @@]
[diff.deleted|- rejected = cmdutil.forget(ui, repo, m, prefix="",][diff.deleted.highlight| explicitonly=False)[0]]
[diff.inserted|+ dryrun = opts.get(r'dry_run')]
[diff.inserted|+ rejected = cmdutil.forget(ui, repo, m, prefix="",]
[diff.inserted|+ explicitonly=False, dryrun=dryrun)[0]]
The new algorithm outputs:
[diff.file_a|--- a/mercurial/commands.py Fri Mar 09 15:53:41 2018 +0100]
[diff.file_b|+++ b/mercurial/commands.py Sat Mar 10 12:33:19 2018 +0530]
[diff.hunk|@@ -2039,1 +2039,4 @@]
[diff.deleted|-][diff.deleted.unchanged|@command(][diff.deleted.unchanged|'^forget',][diff.deleted.unchanged| ][diff.deleted.changed|walkopts][diff.deleted.unchanged|,][diff.deleted.changed| ][diff.deleted.unchanged|_('[OPTION]... FILE...'), inferrepo=True)]
[diff.inserted|+][diff.inserted.unchanged|@command(]
[diff.inserted|+][diff.inserted.changed| ][diff.inserted.unchanged|'^forget',]
[diff.inserted|+][diff.inserted.changed| walkopts][diff.inserted.unchanged| ][diff.inserted.changed|+ dryrunopts][diff.inserted.unchanged|,]
[diff.inserted|+][diff.inserted.changed| ][diff.inserted.unchanged|_('[OPTION]... FILE...'), inferrepo=True)]
[diff.hunk|@@ -2074,1 +2077,3 @@]
[diff.deleted|-][diff.deleted.unchanged| rejected = cmdutil.forget(ui, repo, m, prefix="",][diff.deleted.changed| ][diff.deleted.unchanged|explicitonly=False][diff.deleted.unchanged|)[0]]
[diff.inserted|+][diff.inserted.changed| dryrun = opts.get(r'dry_run')]
[diff.inserted|+][diff.inserted.unchanged| rejected = cmdutil.forget(ui, repo, m, prefix="",]
[diff.inserted|+][diff.inserted.changed| ][diff.inserted.unchanged|explicitonly=False][diff.inserted.changed|, dryrun=dryrun][diff.inserted.unchanged|)[0]]
Practically, when diffing a 8k line change, the time spent on worddiff
reduces from 4 seconds to 0.14 seconds.
Differential Revision: https://phab.mercurial-scm.org/D3212
author | Jun Wu <quark@fb.com> |
---|---|
date | Mon, 09 Apr 2018 15:58:30 -0700 |
parents | 5471348921c1 |
children | be441eb65f09 |
rev | line source |
---|---|
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
1 Setup |
7458
03dd55115985
color: Add tests for colorized diff and status output.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
2 |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
3 $ cat <<EOF >> $HGRCPATH |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
4 > [ui] |
32103
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
5 > color = yes |
32102
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
6 > formatted = always |
32122
1add41fc3c62
test-diff-color: disable pager for expected output on Windows (issue5555)
Matt Harbison <matt_harbison@yahoo.com>
parents:
32103
diff
changeset
|
7 > paginate = never |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
8 > [color] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
9 > mode = ansi |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
10 > EOF |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
11 $ hg init repo |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
12 $ cd repo |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
13 $ cat > a <<EOF |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
14 > c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
15 > c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
16 > a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
17 > a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
18 > b |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
19 > a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
20 > a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
21 > c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
22 > c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
23 > EOF |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
24 $ hg ci -Am adda |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
25 adding a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
26 $ cat > a <<EOF |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
27 > c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
28 > c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
29 > a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
30 > a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
31 > dd |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
32 > a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
33 > a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
34 > c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
35 > c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
36 > EOF |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
37 |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
38 default context |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
39 |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
40 $ hg diff --nodates |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
41 \x1b[0;1mdiff -r cf9f4ba66af2 a\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
42 \x1b[0;31;1m--- a/a\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
43 \x1b[0;32;1m+++ b/a\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
44 \x1b[0;35m@@ -2,7 +2,7 @@\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
45 c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
46 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
47 a |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
48 \x1b[0;31m-b\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
49 \x1b[0;32m+dd\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
50 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
51 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
52 c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
53 |
32102
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
54 (check that 'ui.color=yes' match '--color=auto') |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
55 |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
56 $ hg diff --nodates --config ui.formatted=no |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
57 diff -r cf9f4ba66af2 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
58 --- a/a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
59 +++ b/a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
60 @@ -2,7 +2,7 @@ |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
61 c |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
62 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
63 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
64 -b |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
65 +dd |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
66 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
67 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
68 c |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
69 |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
70 (check that 'ui.color=no' disable color) |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
71 |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
72 $ hg diff --nodates --config ui.formatted=yes --config ui.color=no |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
73 diff -r cf9f4ba66af2 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
74 --- a/a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
75 +++ b/a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
76 @@ -2,7 +2,7 @@ |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
77 c |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
78 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
79 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
80 -b |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
81 +dd |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
82 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
83 a |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
84 c |
9a85ea1daf49
color: turn 'ui.color' into a boolean (auto or off)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31110
diff
changeset
|
85 |
32103
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
86 (check that 'ui.color=always' force color) |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
87 |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
88 $ hg diff --nodates --config ui.formatted=no --config ui.color=always |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
89 \x1b[0;1mdiff -r cf9f4ba66af2 a\x1b[0m (esc) |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
90 \x1b[0;31;1m--- a/a\x1b[0m (esc) |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
91 \x1b[0;32;1m+++ b/a\x1b[0m (esc) |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
92 \x1b[0;35m@@ -2,7 +2,7 @@\x1b[0m (esc) |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
93 c |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
94 a |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
95 a |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
96 \x1b[0;31m-b\x1b[0m (esc) |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
97 \x1b[0;32m+dd\x1b[0m (esc) |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
98 a |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
99 a |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
100 c |
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
101 |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
102 --unified=2 |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
103 |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
104 $ hg diff --nodates -U 2 |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
105 \x1b[0;1mdiff -r cf9f4ba66af2 a\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
106 \x1b[0;31;1m--- a/a\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
107 \x1b[0;32;1m+++ b/a\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
108 \x1b[0;35m@@ -3,5 +3,5 @@\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
109 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
110 a |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
111 \x1b[0;31m-b\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
112 \x1b[0;32m+dd\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
113 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
114 a |
7458
03dd55115985
color: Add tests for colorized diff and status output.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
115 |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
116 diffstat |
9579
c06e7581bbaa
color: add test for record support
Brodie Rao <me+hg@dackz.net>
parents:
7458
diff
changeset
|
117 |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
118 $ hg diff --stat |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
119 a | 2 \x1b[0;32m+\x1b[0m\x1b[0;31m-\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
120 1 files changed, 1 insertions(+), 1 deletions(-) |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
121 $ cat <<EOF >> $HGRCPATH |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
122 > [extensions] |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
123 > record = |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
124 > [ui] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
125 > interactive = true |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
126 > [diff] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
127 > git = True |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22589
diff
changeset
|
128 > EOF |
9641 | 129 |
16899
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16324
diff
changeset
|
130 #if execbit |
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16324
diff
changeset
|
131 |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
132 record |
9579
c06e7581bbaa
color: add test for record support
Brodie Rao <me+hg@dackz.net>
parents:
7458
diff
changeset
|
133 |
15442
db0340f4b507
tests: use 'hghave execbit' for tests that manipulate x bit in file system
Mads Kiilerich <mads@kiilerich.com>
parents:
15243
diff
changeset
|
134 $ chmod +x a |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
135 $ hg record -m moda a <<EOF |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
136 > y |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
137 > y |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
138 > EOF |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
139 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
140 \x1b[0;36;1mold mode 100644\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
141 \x1b[0;36;1mnew mode 100755\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
142 1 hunks, 1 lines changed |
22589
9ab18a912c44
ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents:
22460
diff
changeset
|
143 \x1b[0;33mexamine changes to 'a'? [Ynesfdaq?]\x1b[0m y (esc) |
9ab18a912c44
ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents:
22460
diff
changeset
|
144 |
27411 | 145 \x1b[0;35m@@ -2,7 +2,7 @@ c\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
146 c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
147 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
148 a |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
149 \x1b[0;31m-b\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
150 \x1b[0;32m+dd\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
151 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
152 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
153 c |
22589
9ab18a912c44
ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents:
22460
diff
changeset
|
154 \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m y (esc) |
9ab18a912c44
ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents:
22460
diff
changeset
|
155 |
15243
1e9451476bf8
tests: cleanup of echo statements left over from test conversion
Mads Kiilerich <mads@kiilerich.com>
parents:
13987
diff
changeset
|
156 |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
157 $ echo "[extensions]" >> $HGRCPATH |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
158 $ echo "mq=" >> $HGRCPATH |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
159 $ hg rollback |
13446
1e497df514e2
rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents:
12942
diff
changeset
|
160 repository tip rolled back to revision 0 (undo commit) |
1e497df514e2
rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents:
12942
diff
changeset
|
161 working directory now based on revision 0 |
9711 | 162 |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
163 qrecord |
9711 | 164 |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
165 $ hg qrecord -m moda patch <<EOF |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
166 > y |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
167 > y |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
168 > EOF |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
169 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
170 \x1b[0;36;1mold mode 100644\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
171 \x1b[0;36;1mnew mode 100755\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
172 1 hunks, 1 lines changed |
22589
9ab18a912c44
ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents:
22460
diff
changeset
|
173 \x1b[0;33mexamine changes to 'a'? [Ynesfdaq?]\x1b[0m y (esc) |
9ab18a912c44
ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents:
22460
diff
changeset
|
174 |
27411 | 175 \x1b[0;35m@@ -2,7 +2,7 @@ c\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
176 c |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
177 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
178 a |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
179 \x1b[0;31m-b\x1b[0m (esc) |
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12415
diff
changeset
|
180 \x1b[0;32m+dd\x1b[0m (esc) |
12415
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
181 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
182 a |
1ff3fc4b6a66
tests: unify test-diff-color
Matt Mackall <mpm@selenic.com>
parents:
9711
diff
changeset
|
183 c |
22589
9ab18a912c44
ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents:
22460
diff
changeset
|
184 \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m y (esc) |
9ab18a912c44
ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents:
22460
diff
changeset
|
185 |
16899
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16324
diff
changeset
|
186 |
18006
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
187 $ hg qpop -a |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
188 popping patch |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
189 patch queue now empty |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
190 |
16899
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16324
diff
changeset
|
191 #endif |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16899
diff
changeset
|
192 |
18006
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
193 issue3712: test colorization of subrepo diff |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
194 |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
195 $ hg init sub |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
196 $ echo b > sub/b |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
197 $ hg -R sub commit -Am 'create sub' |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
198 adding b |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
199 $ echo 'sub = sub' > .hgsub |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
200 $ hg add .hgsub |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
201 $ hg commit -m 'add subrepo sub' |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
202 $ echo aa >> a |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
203 $ echo bb >> sub/b |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
204 |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
205 $ hg diff -S |
18006
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
206 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc) |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
207 \x1b[0;31;1m--- a/a\x1b[0m (esc) |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
208 \x1b[0;32;1m+++ b/a\x1b[0m (esc) |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
209 \x1b[0;35m@@ -7,3 +7,4 @@\x1b[0m (esc) |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
210 a |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
211 c |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
212 c |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
213 \x1b[0;32m+aa\x1b[0m (esc) |
18720
0ade08dcb3c3
tests: remove glob lines which unnecessary match / for \ on windows
Simon Heimberg <simohe@besonet.ch>
parents:
18157
diff
changeset
|
214 \x1b[0;1mdiff --git a/sub/b b/sub/b\x1b[0m (esc) |
18006
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
215 \x1b[0;31;1m--- a/sub/b\x1b[0m (esc) |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
216 \x1b[0;32;1m+++ b/sub/b\x1b[0m (esc) |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
217 \x1b[0;35m@@ -1,1 +1,2 @@\x1b[0m (esc) |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
218 b |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
219 \x1b[0;32m+bb\x1b[0m (esc) |
0c10cf819146
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16913
diff
changeset
|
220 |
22460
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
221 test tabs |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
222 |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
223 $ cat >> a <<EOF |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
224 > one tab |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
225 > two tabs |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
226 > end tab |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
227 > mid tab |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
228 > all tabs |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
229 > EOF |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
230 $ hg diff --nodates |
22460
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
231 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
232 \x1b[0;31;1m--- a/a\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
233 \x1b[0;32;1m+++ b/a\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
234 \x1b[0;35m@@ -7,3 +7,9 @@\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
235 a |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
236 c |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
237 c |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
238 \x1b[0;32m+aa\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
239 \x1b[0;32m+\x1b[0m \x1b[0;32mone tab\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
240 \x1b[0;32m+\x1b[0m \x1b[0;32mtwo tabs\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
241 \x1b[0;32m+end tab\x1b[0m\x1b[0;1;41m \x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
242 \x1b[0;32m+mid\x1b[0m \x1b[0;32mtab\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
243 \x1b[0;32m+\x1b[0m \x1b[0;32mall\x1b[0m \x1b[0;32mtabs\x1b[0m\x1b[0;1;41m \x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
244 $ echo "[color]" >> $HGRCPATH |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
245 $ echo "diff.tab = bold magenta" >> $HGRCPATH |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27411
diff
changeset
|
246 $ hg diff --nodates |
22460
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
247 \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
248 \x1b[0;31;1m--- a/a\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
249 \x1b[0;32;1m+++ b/a\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
250 \x1b[0;35m@@ -7,3 +7,9 @@\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
251 a |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
252 c |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
253 c |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
254 \x1b[0;32m+aa\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
255 \x1b[0;32m+\x1b[0m\x1b[0;1;35m \x1b[0m\x1b[0;32mone tab\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
256 \x1b[0;32m+\x1b[0m\x1b[0;1;35m \x1b[0m\x1b[0;32mtwo tabs\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
257 \x1b[0;32m+end tab\x1b[0m\x1b[0;1;41m \x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
258 \x1b[0;32m+mid\x1b[0m\x1b[0;1;35m \x1b[0m\x1b[0;32mtab\x1b[0m (esc) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
259 \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) |
c343557a8442
patch: enable diff.tab markup for the color extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
18720
diff
changeset
|
260 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16899
diff
changeset
|
261 $ cd .. |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
262 |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
263 test inline color diff |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
264 |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
265 $ hg init inline |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
266 $ cd inline |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
267 $ cat > file1 << EOF |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
268 > this is the first line |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
269 > this is the second line |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
270 > third line starts with space |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
271 > + starts with a plus sign |
35328
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
272 > this one with one tab |
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
273 > now with full two tabs |
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
274 > now tabs everywhere, much fun |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
275 > |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
276 > this line won't change |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
277 > |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
278 > two lines are going to |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
279 > be changed into three! |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
280 > |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
281 > three of those lines will |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
282 > collapse onto one |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
283 > (to see if it works) |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
284 > EOF |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
285 $ hg add file1 |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
286 $ hg ci -m 'commit' |
35328
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
287 |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
288 $ cat > file1 << EOF |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
289 > that is the first paragraph |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
290 > this is the second line |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
291 > third line starts with space |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
292 > - starts with a minus sign |
35328
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
293 > this one with two tab |
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
294 > now with full three tabs |
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
295 > now there are tabs everywhere, much fun |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
296 > |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
297 > this line won't change |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
298 > |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
299 > two lines are going to |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
300 > (entirely magically, |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
301 > assuming this works) |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
302 > be changed into four! |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
303 > |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
304 > three of those lines have |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
305 > collapsed onto one |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
306 > EOF |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
307 $ hg diff --config experimental.worddiff=False --color=debug |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
308 [diff.diffline|diff --git a/file1 b/file1] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
309 [diff.file_a|--- a/file1] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
310 [diff.file_b|+++ b/file1] |
35328
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
311 [diff.hunk|@@ -1,16 +1,17 @@] |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
312 [diff.deleted|-this is the first line] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
313 [diff.deleted|-this is the second line] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
314 [diff.deleted|- third line starts with space] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
315 [diff.deleted|-+ starts with a plus sign] |
35328
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
316 [diff.deleted|-][diff.tab| ][diff.deleted|this one with one tab] |
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
317 [diff.deleted|-][diff.tab| ][diff.deleted|now with full two tabs] |
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
318 [diff.deleted|-][diff.tab| ][diff.deleted|now tabs][diff.tab| ][diff.deleted|everywhere, much fun] |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
319 [diff.inserted|+that is the first paragraph] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
320 [diff.inserted|+ this is the second line] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
321 [diff.inserted|+third line starts with space] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
322 [diff.inserted|+- starts with a minus sign] |
35328
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
323 [diff.inserted|+][diff.tab| ][diff.inserted|this one with two tab] |
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
324 [diff.inserted|+][diff.tab| ][diff.inserted|now with full three tabs] |
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
325 [diff.inserted|+][diff.tab| ][diff.inserted|now there are tabs][diff.tab| ][diff.inserted|everywhere, much fun] |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
326 |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
327 this line won't change |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
328 |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
329 two lines are going to |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
330 [diff.deleted|-be changed into three!] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
331 [diff.inserted|+(entirely magically,] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
332 [diff.inserted|+ assuming this works)] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
333 [diff.inserted|+be changed into four!] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
334 |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
335 [diff.deleted|-three of those lines will] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
336 [diff.deleted|-collapse onto one] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
337 [diff.deleted|-(to see if it works)] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
338 [diff.inserted|+three of those lines have] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
339 [diff.inserted|+collapsed onto one] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
340 $ hg diff --config experimental.worddiff=True --color=debug |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
341 [diff.diffline|diff --git a/file1 b/file1] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
342 [diff.file_a|--- a/file1] |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
343 [diff.file_b|+++ b/file1] |
35328
4937db58b663
patch: move part of tabsplitter logic in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
35277
diff
changeset
|
344 [diff.hunk|@@ -1,16 +1,17 @@] |
37732
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
345 [diff.deleted|-][diff.deleted.changed|this][diff.deleted.unchanged| is the first ][diff.deleted.changed|line] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
346 [diff.deleted|-][diff.deleted.unchanged|this is the second line] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
347 [diff.deleted|-][diff.deleted.changed| ][diff.deleted.unchanged|third line starts with space] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
348 [diff.deleted|-][diff.deleted.changed|+][diff.deleted.unchanged| starts with a ][diff.deleted.changed|plus][diff.deleted.unchanged| sign] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
349 [diff.deleted|-][diff.tab| ][diff.deleted.unchanged|this one with ][diff.deleted.changed|one][diff.deleted.unchanged| tab] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
350 [diff.deleted|-][diff.tab| ][diff.deleted.unchanged|now with full ][diff.deleted.changed|two][diff.deleted.unchanged| tabs] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
351 [diff.deleted|-][diff.tab| ][diff.deleted.unchanged|now ][diff.deleted.unchanged|tabs][diff.tab| ][diff.deleted.unchanged|everywhere, much fun] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
352 [diff.inserted|+][diff.inserted.changed|that][diff.inserted.unchanged| is the first ][diff.inserted.changed|paragraph] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
353 [diff.inserted|+][diff.inserted.changed| ][diff.inserted.unchanged|this is the second line] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
354 [diff.inserted|+][diff.inserted.unchanged|third line starts with space] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
355 [diff.inserted|+][diff.inserted.changed|-][diff.inserted.unchanged| starts with a ][diff.inserted.changed|minus][diff.inserted.unchanged| sign] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
356 [diff.inserted|+][diff.tab| ][diff.inserted.unchanged|this one with ][diff.inserted.changed|two][diff.inserted.unchanged| tab] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
357 [diff.inserted|+][diff.tab| ][diff.inserted.unchanged|now with full ][diff.inserted.changed|three][diff.inserted.unchanged| tabs] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
358 [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] |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
359 |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
360 this line won't change |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
361 |
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
362 two lines are going to |
37732
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
363 [diff.deleted|-][diff.deleted.unchanged|be changed into ][diff.deleted.changed|three][diff.deleted.unchanged|!] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
364 [diff.inserted|+][diff.inserted.changed|(entirely magically,] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
365 [diff.inserted|+][diff.inserted.changed| assuming this works)] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
366 [diff.inserted|+][diff.inserted.unchanged|be changed into ][diff.inserted.changed|four][diff.inserted.unchanged|!] |
35277
6ba79cf34f5e
patch: add within-line color diff capacity
Matthieu Laneuville <matthieu.laneuville@octobus.net>
parents:
32122
diff
changeset
|
367 |
37732
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
368 [diff.deleted|-][diff.deleted.unchanged|three of those lines ][diff.deleted.changed|will] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
369 [diff.deleted|-][diff.deleted.changed|collapse][diff.deleted.unchanged| onto one] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
370 [diff.deleted|-][diff.deleted.changed|(to see if it works)] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
371 [diff.inserted|+][diff.inserted.unchanged|three of those lines ][diff.inserted.changed|have] |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
372 [diff.inserted|+][diff.inserted.changed|collapsed][diff.inserted.unchanged| onto one] |
35383
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
373 |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
374 multibyte character shouldn't be broken up in word diff: |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
375 |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
376 $ $PYTHON <<'EOF' |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
377 > with open("utf8", "wb") as f: |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
378 > f.write(b"blah \xe3\x82\xa2 blah\n") |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
379 > EOF |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
380 $ hg ci -Am 'add utf8 char' utf8 |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
381 $ $PYTHON <<'EOF' |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
382 > with open("utf8", "wb") as f: |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
383 > f.write(b"blah \xe3\x82\xa4 blah\n") |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
384 > EOF |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
385 $ hg ci -m 'slightly change utf8 char' utf8 |
37731
5471348921c1
patch: buffer lines for a same hunk
Jun Wu <quark@fb.com>
parents:
35383
diff
changeset
|
386 |
35383
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
387 $ hg diff --config experimental.worddiff=True --color=debug -c. |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
388 [diff.diffline|diff --git a/utf8 b/utf8] |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
389 [diff.file_a|--- a/utf8] |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
390 [diff.file_b|+++ b/utf8] |
82c3762349ac
patch: do not break up multibyte character when highlighting word
Yuya Nishihara <yuya@tcha.org>
parents:
35328
diff
changeset
|
391 [diff.hunk|@@ -1,1 +1,1 @@] |
37732
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
392 [diff.deleted|-][diff.deleted.unchanged|blah ][diff.deleted.changed|\xe3\x82\xa2][diff.deleted.unchanged| blah] (esc) |
35632d392279
patch: implement a new worddiff algorithm
Jun Wu <quark@fb.com>
parents:
37731
diff
changeset
|
393 [diff.inserted|+][diff.inserted.unchanged|blah ][diff.inserted.changed|\xe3\x82\xa4][diff.inserted.unchanged| blah] (esc) |