annotate tests/test-extdiff.t @ 26228:0fd20a71abdb

extdiff: add a --patch argument for diffing changeset deltas One of the things I missed the most when transitioning from versioned MQ to evolve was the loss of being able to check that rebase conflicts were properly resolved by: $ hg ci --mq -m "before" $ hg rebase -s qbase -d tip $ hg bcompare --mq The old csets stay in the tree with evolve, but a straight diff includes all of the other changes that were pulled in, obscuring the code that was rebased. Diffing deltas can be confusing, but unless radical changes were made during the resolve, it is very clear when individual hunks are added, dropped or modified. Unlike the MQ technique, this can only compare a single pair of csets/patches at a time. Like the MQ method, this also highlights changes in the commit comment and other metadata. I originally tried monkey patching from the evolve extension, but that is too complicated given that it depends on the order the two different extensions are loaded. This functionality is also useful when comparing grafts however, so implementing it in the core is more than just convenience. The --change argument doesn't make much sense for this, but it isn't harmful so I didn't bother blocking it. The -I/-X options are ignored because of a limitation of cmdutil.export(). We'll fix that next.
author Matt Harbison <matt_harbison@yahoo.com>
date Wed, 09 Sep 2015 21:07:38 -0400
parents 18bae5eb58c5
children 88c4e97b9669
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
1 $ echo "[extensions]" >> $HGRCPATH
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
2 $ echo "extdiff=" >> $HGRCPATH
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
3
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
4 $ hg init a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
5 $ cd a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
6 $ echo a > a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
7 $ echo b > b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
8 $ hg add
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
9 adding a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
10 adding b
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
11
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
12 Should diff cloned directories:
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
13
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
14 $ hg extdiff -o -r $opt
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
15 Only in a: a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
16 Only in a: b
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
17 [1]
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
18
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23152
diff changeset
19 $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23152
diff changeset
20 > [extdiff]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23152
diff changeset
21 > cmd.falabala = echo
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23152
diff changeset
22 > opts.falabala = diffing
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23152
diff changeset
23 > cmd.edspace = echo
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23152
diff changeset
24 > opts.edspace = "name <user@example.com>"
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23152
diff changeset
25 > EOF
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
26
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
27 $ hg falabala
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
28 diffing a.000000000000 a
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
29 [1]
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
30
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
31 $ hg help falabala
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
32 hg falabala [OPTION]... [FILE]...
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
33
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
34 use 'echo' to diff repository (or selected files)
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
35
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
36 Show differences between revisions for the specified files, using the
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
37 'echo' program.
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
38
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
39 When two revision arguments are given, then changes are shown between
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
40 those revisions. If only one revision is specified then that revision is
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
41 compared to the working directory, and, when no revisions are specified,
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
42 the working directory files are compared to its parent.
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
43
22117
c1d93edcf004 help: fold repeatable option message into option table header
Matt Mackall <mpm@selenic.com>
parents: 22110
diff changeset
44 options ([+] can be repeated):
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
45
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14024
diff changeset
46 -o --option OPT [+] pass option to comparison program
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14024
diff changeset
47 -r --rev REV [+] revision
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14024
diff changeset
48 -c --change REV change made by revision
26228
0fd20a71abdb extdiff: add a --patch argument for diffing changeset deltas
Matt Harbison <matt_harbison@yahoo.com>
parents: 25813
diff changeset
49 --patch compare patches for two revisions
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14024
diff changeset
50 -I --include PATTERN [+] include names matching the given patterns
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14024
diff changeset
51 -X --exclude PATTERN [+] exclude names matching the given patterns
25813
18bae5eb58c5 extdiff: add support for subrepos
Matt Harbison <matt_harbison@yahoo.com>
parents: 24885
diff changeset
52 -S --subrepos recurse into subrepositories
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
53
22110
26f7c8033bed help: tweak --verbose command help hint
Matt Mackall <mpm@selenic.com>
parents: 17837
diff changeset
54 (some details hidden, use --verbose to show complete help)
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
55
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
56 $ hg ci -d '0 0' -mtest1
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
57
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
58 $ echo b >> a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
59 $ hg ci -d '1 0' -mtest2
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
60
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
61 Should diff cloned files directly:
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
62
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
63 #if windows
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
64 $ hg falabala -r 0:1
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
65 diffing "*\\extdiff.*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob)
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
66 [1]
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
67 #else
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
68 $ hg falabala -r 0:1
13762
3740792dbe51 test-extdiff: fix 5c0e1222e7c0 temporary dir output
Patrick Mezard <pmezard@gmail.com>
parents: 13660
diff changeset
69 diffing */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
70 [1]
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
71 #endif
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
72
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
73 Test diff during merge:
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
74
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
75 $ hg update -C 0
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
76 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
77 $ echo c >> c
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
78 $ hg add c
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
79 $ hg ci -m "new branch" -d '1 0'
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
80 created new head
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
81 $ hg merge 1
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
82 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
83 (branch merge, don't forget to commit)
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
84
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
85 Should diff cloned file against wc file:
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
86
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
87 #if windows
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
88 $ hg falabala
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
89 diffing "*\\extdiff.*\\a.2a13a4d2da36\\a" "*\\a\\a" (glob)
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
90 [1]
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
91 #else
12587
e3247ceaca5e tests: removed test names in tests
Erik Zielke <ez@aragost.com>
parents: 12346
diff changeset
92 $ hg falabala
13762
3740792dbe51 test-extdiff: fix 5c0e1222e7c0 temporary dir output
Patrick Mezard <pmezard@gmail.com>
parents: 13660
diff changeset
93 diffing */extdiff.*/a.2a13a4d2da36/a */a/a (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
94 [1]
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
95 #endif
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
96
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
97
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
98 Test --change option:
3330
49966b5ab16f fix traceback of extdiff after a merge
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2990
diff changeset
99
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
100 $ hg ci -d '2 0' -mtest3
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
101 #if windows
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
102 $ hg falabala -c 1
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
103 diffing "*\\extdiff.*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob)
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
104 [1]
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
105 #else
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
106 $ hg falabala -c 1
13762
3740792dbe51 test-extdiff: fix 5c0e1222e7c0 temporary dir output
Patrick Mezard <pmezard@gmail.com>
parents: 13660
diff changeset
107 diffing */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
108 [1]
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
109 #endif
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
110
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
111 Check diff are made from the first parent:
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
112
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
113 #if windows
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
114 $ hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
115 diffing "*\\extdiff.*\\a.2a13a4d2da36\\a" "a.46c0e4daeb72\\a" (glob)
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
116 diff-like tools yield a non-zero exit code
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
117 #else
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
118 $ hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
13762
3740792dbe51 test-extdiff: fix 5c0e1222e7c0 temporary dir output
Patrick Mezard <pmezard@gmail.com>
parents: 13660
diff changeset
119 diffing */extdiff.*/a.2a13a4d2da36/a a.46c0e4daeb72/a (glob)
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
120 diff-like tools yield a non-zero exit code
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
121 #endif
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
122
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
123 issue4463: usage of command line configuration without additional quoting
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
124
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
125 $ cat <<EOF >> $HGRCPATH
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
126 > [extdiff]
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
127 > cmd.4463a = echo
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
128 > opts.4463a = a-naked 'single quoted' "double quoted"
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
129 > 4463b = echo b-naked 'single quoted' "double quoted"
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
130 > echo =
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
131 > EOF
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
132 $ hg update -q -C 0
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
133 $ echo a >> a
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
134 #if windows
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
135 $ hg --debug 4463a | grep '^running'
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
136 running 'echo a-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
137 $ hg --debug 4463b | grep '^running'
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
138 running 'echo b-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
139 $ hg --debug echo | grep '^running'
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
140 running '*echo* "*\\a" "*\\a"' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
141 #else
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
142 $ hg --debug 4463a | grep '^running'
23683
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
143 running 'echo a-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
144 $ hg --debug 4463b | grep '^running'
23683
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
145 running 'echo b-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
146 $ hg --debug echo | grep '^running'
23683
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
147 running '*echo */a $TESTTMP/a/a' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
148 #endif
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
149
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
150 (getting options from other than extdiff section)
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
151
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
152 $ cat <<EOF >> $HGRCPATH
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
153 > [extdiff]
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
154 > # using diff-tools diffargs
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
155 > 4463b2 = echo
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
156 > # using merge-tools diffargs
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
157 > 4463b3 = echo
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
158 > # no diffargs
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
159 > 4463b4 = echo
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
160 > [diff-tools]
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
161 > 4463b2.diffargs = b2-naked 'single quoted' "double quoted"
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
162 > [merge-tools]
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
163 > 4463b3.diffargs = b3-naked 'single quoted' "double quoted"
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
164 > EOF
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
165 #if windows
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
166 $ hg --debug 4463b2 | grep '^running'
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
167 running 'echo b2-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
168 $ hg --debug 4463b3 | grep '^running'
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
169 running 'echo b3-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
170 $ hg --debug 4463b4 | grep '^running'
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
171 running 'echo "*\\a" "*\\a"' in */extdiff.* (glob)
23682
1642eb429536 windows: quote the specified string only when it has to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23680
diff changeset
172 $ hg --debug 4463b4 --option b4-naked --option 'being quoted' | grep '^running'
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
173 running 'echo b4-naked "being quoted" "*\\a" "*\\a"' in */extdiff.* (glob)
23682
1642eb429536 windows: quote the specified string only when it has to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23680
diff changeset
174 $ hg --debug extdiff -p echo --option echo-naked --option 'being quoted' | grep '^running'
24885
eea3977e6fca windows: make shellquote() quote any path containing '\' (issue4629)
Matt Harbison <matt_harbison@yahoo.com>
parents: 24153
diff changeset
175 running 'echo echo-naked "being quoted" "*\\a" "*\\a"' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
176 #else
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
177 $ hg --debug 4463b2 | grep '^running'
23683
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
178 running 'echo b2-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
179 $ hg --debug 4463b3 | grep '^running'
23683
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
180 running 'echo b3-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
181 $ hg --debug 4463b4 | grep '^running'
23683
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
182 running 'echo */a $TESTTMP/a/a' in */extdiff.* (glob)
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
183 $ hg --debug 4463b4 --option b4-naked --option 'being quoted' | grep '^running'
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
184 running "echo b4-naked 'being quoted' */a $TESTTMP/a/a" in */extdiff.* (glob)
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
185 $ hg --debug extdiff -p echo --option echo-naked --option 'being quoted' | grep '^running'
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
186 running "echo echo-naked 'being quoted' */a $TESTTMP/a/a" in */extdiff.* (glob)
23680
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
187 #endif
4075f2f8ea53 extdiff: avoid unexpected quoting arguments for external tools (issue4463)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23172
diff changeset
188
23969
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
189 $ touch 'sp ace'
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
190 $ hg add 'sp ace'
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
191 $ hg ci -m 'sp ace'
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
192 created new head
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
193 $ echo > 'sp ace'
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
194
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
195 Test pre-72a89cf86fcd backward compatibility with half-baked manual quoting
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
196
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
197 $ cat <<EOF >> $HGRCPATH
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
198 > [extdiff]
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
199 > odd =
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
200 > [merge-tools]
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
201 > odd.diffargs = --foo='\$clabel' '\$clabel' "--bar=\$clabel" "\$clabel"
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
202 > odd.executable = echo
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
203 > EOF
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
204 #if windows
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
205 TODO
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
206 #else
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
207 $ hg --debug odd | grep '^running'
24153
f7401f816cc9 test: make test-extdiff resilient to */gnubin/echo
Sean Farley <sean.michael.farley@gmail.com>
parents: 24108
diff changeset
208 running "*/echo --foo='sp ace' 'sp ace' --bar='sp ace' 'sp ace'" in * (glob)
23969
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
209 #endif
01e5b7323a48 extdiff: reintroduce backward compatibility with manual quoting of parameters
Mads Kiilerich <madski@unity3d.com>
parents: 23683
diff changeset
210
24108
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
211 Empty argument must be quoted
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
212
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
213 $ cat <<EOF >> $HGRCPATH
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
214 > [extdiff]
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
215 > kdiff3 = echo
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
216 > [merge-tools]
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
217 > kdiff3.diffargs=--L1 \$plabel1 --L2 \$clabel \$parent \$child
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
218 > EOF
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
219 #if windows
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
220 $ hg --debug kdiff3 -r0 | grep '^running'
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
221 running 'echo --L1 "@0" --L2 "" a.8a5febb7f867 a' in * (glob)
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
222 #else
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
223 $ hg --debug kdiff3 -r0 | grep '^running'
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
224 running "echo --L1 '@0' --L2 '' a.8a5febb7f867 a" in * (glob)
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
225 #endif
d65ecb814fc0 shellquote: fix missing quotes for empty string
Yuya Nishihara <yuya@tcha.org>
parents: 23974
diff changeset
226
16899
8149ff405c78 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
227 #if execbit
8149ff405c78 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
228
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
229 Test extdiff of multiple files in tmp dir:
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
230
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
231 $ hg update -C 0 > /dev/null
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
232 $ echo changed > a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
233 $ echo changed > b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
234 $ chmod +x b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
235
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
236 Diff in working directory, before:
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
237
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
238 $ hg diff --git
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
239 diff --git a/a b/a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
240 --- a/a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
241 +++ b/a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
242 @@ -1,1 +1,1 @@
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
243 -a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
244 +changed
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
245 diff --git a/b b/b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
246 old mode 100644
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
247 new mode 100755
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
248 --- a/b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
249 +++ b/b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
250 @@ -1,1 +1,1 @@
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
251 -b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
252 +changed
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
253
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
254
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
255 Edit with extdiff -p:
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
256
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
257 Prepare custom diff/edit tool:
8065
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
258
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
259 $ cat > 'diff tool.py' << EOT
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
260 > #!/usr/bin/env python
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
261 > import time
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
262 > time.sleep(1) # avoid unchanged-timestamp problems
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
263 > file('a/a', 'ab').write('edited\n')
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
264 > file('a/b', 'ab').write('edited\n')
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
265 > EOT
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
266
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
267 $ chmod +x 'diff tool.py'
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
268
12328
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
269 will change to /tmp/extdiff.TMP and populate directories a.TMP and a
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
270 and start tool
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
271
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
272 $ hg extdiff -p "`pwd`/diff tool.py"
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
273 [1]
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
274
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
275 Diff in working directory, after:
9956
6045a8c4dbbc extdiff: respect --option in command aliases (issue949)
Sune Foldager <cryo@cyanite.org>
parents: 8212
diff changeset
276
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
277 $ hg diff --git
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
278 diff --git a/a b/a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
279 --- a/a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
280 +++ b/a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
281 @@ -1,1 +1,2 @@
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
282 -a
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
283 +changed
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
284 +edited
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
285 diff --git a/b b/b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
286 old mode 100644
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
287 new mode 100755
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
288 --- a/b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
289 +++ b/b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
290 @@ -1,1 +1,2 @@
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
291 -b
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
292 +changed
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
293 +edited
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
294
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
295 Test extdiff with --option:
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
296
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
297 $ hg extdiff -p echo -o this -c 1
13762
3740792dbe51 test-extdiff: fix 5c0e1222e7c0 temporary dir output
Patrick Mezard <pmezard@gmail.com>
parents: 13660
diff changeset
298 this */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
299 [1]
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
300
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
301 $ hg falabala -o this -c 1
13762
3740792dbe51 test-extdiff: fix 5c0e1222e7c0 temporary dir output
Patrick Mezard <pmezard@gmail.com>
parents: 13660
diff changeset
302 diffing this */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
303 [1]
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
304
23138
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
305 Test extdiff's handling of options with spaces in them:
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
306
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
307 $ hg edspace -c 1
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
308 name <user@example.com> */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob)
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
309 [1]
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
310
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
311 $ hg extdiff -p echo -o "name <user@example.com>" -c 1
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
312 name <user@example.com> */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob)
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
313 [1]
72a89cf86fcd extdiff: quote user-supplied options passed to shell
Michael Fyles <mf@vorston.net>
parents: 22117
diff changeset
314
13660
a56c1b2bff18 Updating hgext.extdiff to use revsets
David Wolever <david@wolever.net>
parents: 12640
diff changeset
315 Test with revsets:
a56c1b2bff18 Updating hgext.extdiff to use revsets
David Wolever <david@wolever.net>
parents: 12640
diff changeset
316
a56c1b2bff18 Updating hgext.extdiff to use revsets
David Wolever <david@wolever.net>
parents: 12640
diff changeset
317 $ hg extdif -p echo -c "rev(1)"
13762
3740792dbe51 test-extdiff: fix 5c0e1222e7c0 temporary dir output
Patrick Mezard <pmezard@gmail.com>
parents: 13660
diff changeset
318 */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12304
diff changeset
319 [1]
13660
a56c1b2bff18 Updating hgext.extdiff to use revsets
David Wolever <david@wolever.net>
parents: 12640
diff changeset
320
a56c1b2bff18 Updating hgext.extdiff to use revsets
David Wolever <david@wolever.net>
parents: 12640
diff changeset
321 $ hg extdif -p echo -r "0::1"
13762
3740792dbe51 test-extdiff: fix 5c0e1222e7c0 temporary dir output
Patrick Mezard <pmezard@gmail.com>
parents: 13660
diff changeset
322 */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob)
13660
a56c1b2bff18 Updating hgext.extdiff to use revsets
David Wolever <david@wolever.net>
parents: 12640
diff changeset
323 [1]
14024
92b768e9f80c merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13762 14021
diff changeset
324
23150
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
325 Fallback to merge-tools.tool.executable|regkey
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
326 $ mkdir dir
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
327 $ cat > 'dir/tool.sh' << EOF
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
328 > #!/bin/sh
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
329 > echo "** custom diff **"
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
330 > EOF
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
331 $ chmod +x dir/tool.sh
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
332 $ tool=`pwd`/dir/tool.sh
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
333 $ hg --debug tl --config extdiff.tl= --config merge-tools.tl.executable=$tool
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
334 making snapshot of 2 files from rev * (glob)
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
335 a
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
336 b
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
337 making snapshot of 2 files from working directory
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
338 a
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
339 b
23683
5edb387158a1 posix: quote the specified string only when it may have to be quoted
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 23682
diff changeset
340 running '$TESTTMP/a/dir/tool.sh a.* a' in */extdiff.* (glob)
23150
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
341 ** custom diff **
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
342 cleaning up temp directory
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
343 [1]
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22117
diff changeset
344
14021
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
345 $ cd ..
12304
41dd368b6fe8 tests: unify test-extdiff
Adrian Buehlmann <adrian@cadifra.com>
parents: 10775
diff changeset
346
16899
8149ff405c78 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
347 #endif
8149ff405c78 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
348
8149ff405c78 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
349 #if symlink
8149ff405c78 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
350
14024
92b768e9f80c merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13762 14021
diff changeset
351 Test symlinks handling (issue1909)
92b768e9f80c merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13762 14021
diff changeset
352
14021
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
353 $ hg init testsymlinks
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
354 $ cd testsymlinks
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
355 $ echo a > a
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
356 $ hg ci -Am adda
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
357 adding a
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
358 $ echo a >> a
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
359 $ ln -s missing linka
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
360 $ hg add linka
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
361 $ hg falabala -r 0 --traceback
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
362 diffing testsymlinks.07f494440405 testsymlinks
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
363 [1]
3eb632d9cf42 extdiff: fix broken symlinks handling (issue1909)
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
364 $ cd ..
16899
8149ff405c78 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
365
8149ff405c78 tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
366 #endif