Mercurial > hg
annotate tests/test-eol-clone.t @ 40026:7e807b8a9e56
wireprotov2: client support for following content redirects
And with the server actually sending content redirects, it is finally
time to implement client support for following them!
When a redirect response is seen, we wait until all data for that
request has been received (it should be nearly immediate since no
data is expected to follow the redirect message). Then we use
a URL opener to make a request. We stuff that response into the
client handler and construct a new response object to track it.
When readdata() is called for servicing requests, we attempt to
read data from the first redirected response. During data reading,
data is processed similarly to as if it came from a frame payload.
The existing test for the functionality demonstrates the client
transparently following the redirect and obtaining the command
response data from an alternate URL!
There is still plenty of work to do here, including shoring up
testing. I'm not convinced things will work in the presence of
multiple redirect responses. And we don't yet implement support
for integrity verification or configuring server certificates
to validate the connection. But it's a start. And it should enable
us to start experimenting with "real" caches.
Differential Revision: https://phab.mercurial-scm.org/D4778
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 26 Sep 2018 18:08:08 -0700 |
parents | eb586ed5d8ce |
children | 7699d9237a67 |
rev | line source |
---|---|
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
1 Testing cloning with the EOL extension |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
2 |
13519
43b3b761d9d1
tests: don't overwrite HGRCPATH
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
3 $ cat >> $HGRCPATH <<EOF |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
4 > [extensions] |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
5 > eol = |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
6 > |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
7 > [eol] |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
8 > native = CRLF |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
9 > EOF |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
10 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
11 setup repository |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
12 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
13 $ hg init repo |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
14 $ cd repo |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
15 $ cat > .hgeol <<EOF |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
16 > [patterns] |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
17 > **.txt = native |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
18 > EOF |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
19 $ printf "first\r\nsecond\r\nthird\r\n" > a.txt |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
20 $ hg commit --addremove -m 'checkin' |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
21 adding .hgeol |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
22 adding a.txt |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
23 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
24 Clone |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
25 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
26 $ cd .. |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
27 $ hg clone repo repo-2 |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
28 updating to branch default |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
29 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
30 $ cd repo-2 |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
31 $ cat a.txt |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
32 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
33 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
34 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
35 $ hg cat a.txt |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
36 first |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
37 second |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
38 third |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
39 $ hg remove .hgeol |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
40 $ hg commit -m 'remove eol' |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
41 $ hg push --quiet |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
42 $ cd .. |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
43 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
44 Test clone of repo with .hgeol in working dir, but no .hgeol in tip |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
45 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
46 $ hg clone repo repo-3 |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
47 updating to branch default |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
48 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
49 $ cd repo-3 |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
50 |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
51 $ cat a.txt |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
52 first |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
53 second |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
54 third |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
55 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
56 Test clone of revision with .hgeol |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
57 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
58 $ cd .. |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
59 $ hg clone -r 0 repo repo-4 |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
60 adding changesets |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
61 adding manifests |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
62 adding file changes |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
63 added 1 changesets with 2 changes to 2 files |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
16913
diff
changeset
|
64 new changesets 90f94e2cf4e2 |
12422
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
65 updating to branch default |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
66 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
67 $ cd repo-4 |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
68 $ cat .hgeol |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
69 [patterns] |
4263359f7eac
tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents:
11249
diff
changeset
|
70 **.txt = native |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
71 |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
72 $ cat a.txt |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
73 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
74 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12847
diff
changeset
|
75 third\r (esc) |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
13521
diff
changeset
|
76 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
13521
diff
changeset
|
77 $ cd .. |