annotate tests/test-excessive-merge.t @ 37048:fc5e261915b9

wireproto: require POST for all HTTPv2 requests Wire protocol version 1 transfers argument data via request headers by default. This has historically caused problems because servers institute limits on the length of individual HTTP headers as well as the total size of all request headers. Mercurial servers can advertise the maximum length of an individual header. But there's no guarantee any intermediate HTTP agents will accept headers up to that length. In the existing wire protocol, server operators typically also key off the HTTP request method to implement authentication. For example, GET requests translate to read-only requests and can be allowed. But read-write commands must use POST and require authentication. This has typically worked because the only wire protocol commands that use POST modify the repo (e.g. the "unbundle" command). There is an experimental feature to enable clients to transmit argument data via POST request bodies. This is technically a better and more robust solution. But we can't enable it by default because of servers assuming POST means write access. In version 2 of the wire protocol, the permissions of a request are encoded in the URL. And with it being a new protocol in a new URL space, we're not constrained by backwards compatibility requirements. This commit adopts the technically superior mechanism of using HTTP request bodies to send argument data by requiring POST for all commands. Strictly speaking, it may be possible to send request bodies on GET requests. But my experience is that not all HTTP stacks support this. POST pretty much always works. Using POST for read-only operations does sacrifice some RESTful design purity. But this API cares about practicality, not about being in Roy T. Fielding's REST ivory tower. There's a chance we may relax this restriction in the future. But for now, I want to see how far we can get with a POST only API. Differential Revision: https://phab.mercurial-scm.org/D2837
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 13 Mar 2018 11:57:43 -0700
parents b7a966ce89ed
children 009d0283de5f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
1 $ hg init
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
2
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
3 $ echo foo > a
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
4 $ echo foo > b
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
5 $ hg add a b
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
6
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
7 $ hg ci -m "test"
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
8
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
9 $ echo blah > a
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
10
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
11 $ hg ci -m "branch a"
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
12
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
13 $ hg co 0
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
14 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
15
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
16 $ echo blah > b
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
17
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
18 $ hg ci -m "branch b"
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
19 created new head
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
20 $ HGMERGE=true hg merge 1
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
21 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
22 (branch merge, don't forget to commit)
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
23
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
24 $ hg ci -m "merge b/a -> blah"
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
25
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
26 $ hg co 1
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
27 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
28 $ HGMERGE=true hg merge 2
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
29 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
30 (branch merge, don't forget to commit)
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
31 $ hg ci -m "merge a/b -> blah"
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
32 created new head
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
33
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
34 $ hg log
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
35 changeset: 4:2ee31f665a86
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
36 tag: tip
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
37 parent: 1:96155394af80
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
38 parent: 2:92cc4c306b19
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
39 user: test
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
40 date: Thu Jan 01 00:00:00 1970 +0000
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
41 summary: merge a/b -> blah
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
42
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
43 changeset: 3:e16a66a37edd
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
44 parent: 2:92cc4c306b19
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
45 parent: 1:96155394af80
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
46 user: test
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
47 date: Thu Jan 01 00:00:00 1970 +0000
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
48 summary: merge b/a -> blah
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
49
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
50 changeset: 2:92cc4c306b19
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
51 parent: 0:5e0375449e74
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
52 user: test
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
53 date: Thu Jan 01 00:00:00 1970 +0000
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
54 summary: branch b
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
55
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
56 changeset: 1:96155394af80
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
57 user: test
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
58 date: Thu Jan 01 00:00:00 1970 +0000
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
59 summary: branch a
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
60
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
61 changeset: 0:5e0375449e74
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
62 user: test
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11974
diff changeset
63 date: Thu Jan 01 00:00:00 1970 +0000
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
64 summary: test
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
65
14323
a79fea6b3e77 debugindex etc.: add --changelog and --manifest options
Sune Foldager <cryo@cyanite.org>
parents: 14182
diff changeset
66 $ hg debugindex --changelog
17132
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 14323
diff changeset
67 rev offset length ..... linkrev nodeid p1 p2 (re)
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 14323
diff changeset
68 0 0 60 ..... 0 5e0375449e74 000000000000 000000000000 (re)
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 14323
diff changeset
69 1 60 62 ..... 1 96155394af80 5e0375449e74 000000000000 (re)
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 14323
diff changeset
70 2 122 62 ..... 2 92cc4c306b19 5e0375449e74 000000000000 (re)
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 14323
diff changeset
71 3 184 69 ..... 3 e16a66a37edd 92cc4c306b19 96155394af80 (re)
30155
b7a966ce89ed changelog: disable delta chains
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17132
diff changeset
72 4 253 69 ..... 4 2ee31f665a86 96155394af80 92cc4c306b19 (re)
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
73
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
74 revision 1
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
75 $ hg manifest --debug 1
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
76 79d7492df40aa0fa093ec4209be78043c181f094 644 a
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
77 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 b
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
78 revision 2
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
79 $ hg manifest --debug 2
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
80 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 a
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
81 79d7492df40aa0fa093ec4209be78043c181f094 644 b
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
82 revision 3
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
83 $ hg manifest --debug 3
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
84 79d7492df40aa0fa093ec4209be78043c181f094 644 a
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
85 79d7492df40aa0fa093ec4209be78043c181f094 644 b
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
86 revision 4
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
87 $ hg manifest --debug 4
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
88 79d7492df40aa0fa093ec4209be78043c181f094 644 a
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
89 79d7492df40aa0fa093ec4209be78043c181f094 644 b
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
90
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12156
diff changeset
91 $ hg debugindex a
17132
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 14323
diff changeset
92 rev offset length ..... linkrev nodeid p1 p2 (re)
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 14323
diff changeset
93 0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re)
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 14323
diff changeset
94 1 5 6 ..... 1 79d7492df40a 2ed2a3912a0b 000000000000 (re)
1716
ef8cd889a78b Refactor excessive merge detection, add test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
95
11974
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
96 $ hg verify
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
97 checking changesets
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
98 checking manifests
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
99 crosschecking files in changesets and manifests
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
100 checking files
ccd581c66284 tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 3853
diff changeset
101 2 files, 5 changesets, 4 total revisions