annotate tests/test-bookmarks-strip.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 e78a80f8f51e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
1 $ echo "[extensions]" >> $HGRCPATH
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
2 $ echo "mq=" >> $HGRCPATH
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
3
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
4 $ hg init
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
5
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
6 $ echo qqq>qqq.txt
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
7
13307
7f2b8aac7bdc bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents: 12640
diff changeset
8 rollback dry run without rollback information
7f2b8aac7bdc bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents: 12640
diff changeset
9
7f2b8aac7bdc bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents: 12640
diff changeset
10 $ hg rollback
7f2b8aac7bdc bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents: 12640
diff changeset
11 no rollback information available
7f2b8aac7bdc bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents: 12640
diff changeset
12 [1]
7f2b8aac7bdc bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents: 12640
diff changeset
13
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
14 add file
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
15
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
16 $ hg add
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
17 adding qqq.txt
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
18
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
19 commit first revision
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
20
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11907
diff changeset
21 $ hg ci -m 1
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
22
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
23 set bookmark
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
24
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
25 $ hg book test
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
26
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
27 $ echo www>>qqq.txt
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
28
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
29 commit second revision
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
30
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11907
diff changeset
31 $ hg ci -m 2
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
32
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
33 set bookmark
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
34
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
35 $ hg book test2
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
36
17497
b682997d6944 spelling: deactivates
timeless@mozdev.org
parents: 17264
diff changeset
37 update to -2 (deactivates the active bookmark)
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
38
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
39 $ hg update -r -2
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
40 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
21404
ca275f7ec576 update: when deactivating a bookmark, print a message
Siddharth Agarwal <sid0@fb.com>
parents: 17497
diff changeset
41 (leaving bookmark test2)
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
42
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
43 $ echo eee>>qqq.txt
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
44
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
45 commit new head
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
46
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11907
diff changeset
47 $ hg ci -m 3
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
48 created new head
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
49
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
50 bookmarks updated?
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
51
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
52 $ hg book
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11907
diff changeset
53 test 1:25e1ee7a0081
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11907
diff changeset
54 test2 1:25e1ee7a0081
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
55
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
56 strip to revision 1
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
57
11907
863567a1364f tests: use regular expressions instead of helpers
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11864
diff changeset
58 $ hg strip 1
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12394
diff changeset
59 saved backup bundle to $TESTTMP/.hg/strip-backup/*-backup.hg (glob)
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
60
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
61 list bookmarks
7316
9737041646bc bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff changeset
62
11864
b2a06ef53b7b tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
63 $ hg book
17264
ec7b9bec19c9 strip: move bookmarks to nearest ancestor rather than '.'
Augie Fackler <raf@durin42.com>
parents: 16191
diff changeset
64 test 0:5c9ad3787638
ec7b9bec19c9 strip: move bookmarks to nearest ancestor rather than '.'
Augie Fackler <raf@durin42.com>
parents: 16191
diff changeset
65 test2 0:5c9ad3787638