annotate tests/test-extdata.t @ 37533:df4985497986

wireproto: implement capabilities for wire protocol v2 The capabilities mechanism for wire protocol version 2 represents a clean break from version 1. Instead of effectively exchanging a set of capabilities, we're exchanging a rich data structure. This data structure currently contains information about every available command, including its accepted arguments. It also contains information about supported compression formats. Exposing information about supported commands will allow clients to automatically generate bindings to the server. Clients will be able to do things like detect when they are attempting to run a command that isn't known to the server. Exposing the required permissions to run a command can be used by clients to determine if they have privileges to call a command before actually calling it. We could potentially even have clients send credentials preemptively without waiting for the server to deny the command request. Lots of potential here. The data returned by this command will likely evolve heavily. So we shouldn't bikeshed the implementation just yet. Differential Revision: https://phab.mercurial-scm.org/D3200
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 09 Apr 2018 11:52:31 -0700
parents b1959391a088
children faa41fd282d1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
1 $ hg init repo
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
2 $ cd repo
34459
d5c5cc767b7e extdata: ignore ambiguous identifier as well
Yuya Nishihara <yuya@tcha.org>
parents: 34458
diff changeset
3 $ for n in 0 1 2 3 4 5 6 7 8 9 10 11; do
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
4 > echo $n > $n
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
5 > hg ci -qAm $n
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
6 > done
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
7
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
8 test revset support
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
9
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
10 $ cat <<'EOF' >> .hg/hgrc
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
11 > [extdata]
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
12 > filedata = file:extdata.txt
34458
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
13 > notes = notes.txt
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
14 > shelldata = shell:cat extdata.txt | grep 2
34542
153e4e05e9b3 extdata: show debug message if external command exits with non-zero status
Yuya Nishihara <yuya@tcha.org>
parents: 34459
diff changeset
15 > emptygrep = shell:cat extdata.txt | grep empty
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
16 > EOF
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
17 $ cat <<'EOF' > extdata.txt
34458
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
18 > 2 another comment on 2
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
19 > 3
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
20 > EOF
34458
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
21 $ cat <<'EOF' > notes.txt
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
22 > f6ed this change is great!
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
23 > e834 this is buggy :(
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
24 > 0625 first post
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
25 > bogusnode gives no error
34459
d5c5cc767b7e extdata: ignore ambiguous identifier as well
Yuya Nishihara <yuya@tcha.org>
parents: 34458
diff changeset
26 > a ambiguous node gives no error
34458
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
27 > EOF
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
28
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
29 $ hg log -qr "extdata(filedata)"
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
30 2:f6ed99a58333
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
31 3:9de260b1e88e
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
32 $ hg log -qr "extdata(shelldata)"
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
33 2:f6ed99a58333
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
34
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
35 test weight of extdata() revset
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
36
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
37 $ hg debugrevspec -p optimized "extdata(filedata) & 3"
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
38 * optimized:
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
39 (andsmally
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
40 (func
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
41 (symbol 'extdata')
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
42 (symbol 'filedata'))
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
43 (symbol '3'))
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
44 3
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
45
34542
153e4e05e9b3 extdata: show debug message if external command exits with non-zero status
Yuya Nishihara <yuya@tcha.org>
parents: 34459
diff changeset
46 test non-zero exit of shell command
153e4e05e9b3 extdata: show debug message if external command exits with non-zero status
Yuya Nishihara <yuya@tcha.org>
parents: 34459
diff changeset
47
153e4e05e9b3 extdata: show debug message if external command exits with non-zero status
Yuya Nishihara <yuya@tcha.org>
parents: 34459
diff changeset
48 $ hg log -qr "extdata(emptygrep)"
35412
b1959391a088 extdata: abort if external command exits with non-zero status (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 35230
diff changeset
49 abort: extdata command 'cat extdata.txt | grep empty' failed: exited with status 1
b1959391a088 extdata: abort if external command exits with non-zero status (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 35230
diff changeset
50 [255]
34542
153e4e05e9b3 extdata: show debug message if external command exits with non-zero status
Yuya Nishihara <yuya@tcha.org>
parents: 34459
diff changeset
51
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
52 test bad extdata() revset source
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
53
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
54 $ hg log -qr "extdata()"
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
55 hg: parse error: extdata takes at least 1 string argument
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
56 [255]
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
57 $ hg log -qr "extdata(unknown)"
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
58 abort: unknown extdata source 'unknown'
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
59 [255]
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
60
34458
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
61 test template support:
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
62
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
63 $ hg log -r:3 -T "{node|short}{if(extdata('notes'), ' # {extdata('notes')}')}\n"
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
64 06254b906311 # first post
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
65 e8342c9a2ed1 # this is buggy :(
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
66 f6ed99a58333 # this change is great!
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
67 9de260b1e88e
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
68
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
69 test template cache:
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
70
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
71 $ hg log -r:3 -T '{rev} "{extdata("notes")}" "{extdata("shelldata")}"\n'
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
72 0 "first post" ""
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
73 1 "this is buggy :(" ""
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
74 2 "this change is great!" "another comment on 2"
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
75 3 "" ""
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
76
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
77 test bad extdata() template source
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
78
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
79 $ hg log -T "{extdata()}\n"
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
80 hg: parse error: extdata expects one argument
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
81 [255]
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
82 $ hg log -T "{extdata('unknown')}\n"
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
83 abort: unknown extdata source 'unknown'
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
84 [255]
a1b89c8ad32d templater: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents: 34457
diff changeset
85
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
86 we don't fix up relative file URLs, but we do run shell commands in repo root
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
87
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
88 $ mkdir sub
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
89 $ cd sub
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
90 $ hg log -qr "extdata(filedata)"
35230
feecfefeba25 tests: add a substitution for ENOENT/ERROR_FILE_NOT_FOUND messages
Matt Harbison <matt_harbison@yahoo.com>
parents: 34690
diff changeset
91 abort: error: $ENOENT$
34457
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
92 [255]
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
93 $ hg log -qr "extdata(shelldata)"
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
94 2:f6ed99a58333
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
95
2c3b8fa3211b revset: add experimental support for extdata
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
96 $ cd ..