Mercurial > hg
annotate tests/test-largefiles-wireproto.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 | 02bea04b4c54 |
children | f4e84dfc06fd |
rev | line source |
---|---|
36217
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
1 #testcases sshv1 sshv2 |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
2 |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
3 #if sshv2 |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
4 $ cat >> $HGRCPATH << EOF |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
5 > [experimental] |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
6 > sshpeer.advertise-v2 = true |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
7 > sshserver.support-v2 = true |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
8 > EOF |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
9 #endif |
1ee1a42bfdae
tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
10 |
23139
e53f6b72a0e4
spelling: fixes from proofreading of spell checker issues
Mads Kiilerich <madski@unity3d.com>
parents:
21424
diff
changeset
|
11 This file contains testcases that tend to be related to the wire protocol part |
e53f6b72a0e4
spelling: fixes from proofreading of spell checker issues
Mads Kiilerich <madski@unity3d.com>
parents:
21424
diff
changeset
|
12 of largefiles. |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
13 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
14 $ USERCACHE="$TESTTMP/cache"; export USERCACHE |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
15 $ mkdir "${USERCACHE}" |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
16 $ cat >> $HGRCPATH <<EOF |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
17 > [extensions] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
18 > largefiles= |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
19 > purge= |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
20 > rebase= |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
21 > transplant= |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
22 > [phases] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
23 > publish=False |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
24 > [largefiles] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
25 > minsize=2 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
26 > patterns=glob:**.dat |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
27 > usercache=${USERCACHE} |
26417
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
28 > [web] |
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
29 > allow_archive = zip |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
30 > [hooks] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
31 > precommit=sh -c "echo \\"Invoking status precommit hook\\"; hg status" |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
32 > EOF |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
33 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
34 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
35 #if serve |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
36 vanilla clients not locked out from largefiles servers on vanilla repos |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
37 $ mkdir r1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
38 $ cd r1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
39 $ hg init |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
40 $ echo c1 > f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
41 $ hg add f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
42 $ hg commit -m "m1" |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
43 Invoking status precommit hook |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
44 A f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
45 $ cd .. |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
46 $ hg serve -R r1 -d -p $HGPORT --pid-file hg.pid |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
47 $ cat hg.pid >> $DAEMON_PIDS |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
48 $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT r2 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
49 requesting all changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
50 adding changesets |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
51 adding manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
52 adding file changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
53 added 1 changesets with 1 changes to 1 files |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
33963
diff
changeset
|
54 new changesets b6eb3a2e2efe |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
55 updating to branch default |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
56 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
57 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
58 largefiles clients still work with vanilla servers |
28549 | 59 $ hg serve --config extensions.largefiles=! -R r1 -d -p $HGPORT1 --pid-file hg.pid |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
60 $ cat hg.pid >> $DAEMON_PIDS |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
61 $ hg clone http://localhost:$HGPORT1 r3 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
62 requesting all changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
63 adding changesets |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
64 adding manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
65 adding file changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
66 added 1 changesets with 1 changes to 1 files |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
33963
diff
changeset
|
67 new changesets b6eb3a2e2efe |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
68 updating to branch default |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
69 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
70 #endif |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
71 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
72 vanilla clients locked out from largefiles http repos |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
73 $ mkdir r4 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
74 $ cd r4 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
75 $ hg init |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
76 $ echo c1 > f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
77 $ hg add --large f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
78 $ hg commit -m "m1" |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
79 Invoking status precommit hook |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
80 A f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
81 $ cd .. |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
82 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
83 largefiles can be pushed locally (issue3583) |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
84 $ hg init dest |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
85 $ cd r4 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
86 $ hg outgoing ../dest |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
87 comparing with ../dest |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
88 searching for changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
89 changeset: 0:639881c12b4c |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
90 tag: tip |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
91 user: test |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
92 date: Thu Jan 01 00:00:00 1970 +0000 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
93 summary: m1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
94 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
95 $ hg push ../dest |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
96 pushing to ../dest |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
97 searching for changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
98 adding changesets |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
99 adding manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
100 adding file changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
101 added 1 changesets with 1 changes to 1 files |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
102 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
103 exit code with nothing outgoing (issue3611) |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
104 $ hg outgoing ../dest |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
105 comparing with ../dest |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
106 searching for changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
107 no changes found |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
108 [1] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
109 $ cd .. |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
110 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
111 #if serve |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
112 $ hg serve -R r4 -d -p $HGPORT2 --pid-file hg.pid |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
113 $ cat hg.pid >> $DAEMON_PIDS |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
114 $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT2 r5 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
115 abort: remote error: |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
116 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
117 This repository uses the largefiles extension. |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
118 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
119 Please enable it in your Mercurial config file. |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
120 [255] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
121 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
122 used all HGPORTs, kill all daemons |
25474
8c14f87bd0ae
tests: drop DAEMON_PIDS from killdaemons calls
Matt Mackall <mpm@selenic.com>
parents:
25472
diff
changeset
|
123 $ killdaemons.py |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
124 #endif |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
125 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
126 vanilla clients locked out from largefiles ssh repos |
33335
72f051f9a7d8
tests: quote $PYTHON for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33286
diff
changeset
|
127 $ hg --config extensions.largefiles=! clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/r4 r5 |
25243
d65243d28749
sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25125
diff
changeset
|
128 remote: |
d65243d28749
sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25125
diff
changeset
|
129 remote: This repository uses the largefiles extension. |
d65243d28749
sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25125
diff
changeset
|
130 remote: |
d65243d28749
sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25125
diff
changeset
|
131 remote: Please enable it in your Mercurial config file. |
d65243d28749
sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25125
diff
changeset
|
132 remote: |
d65243d28749
sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25125
diff
changeset
|
133 remote: - |
d65243d28749
sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25125
diff
changeset
|
134 abort: remote error |
d65243d28749
sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25125
diff
changeset
|
135 (check previous remote output) |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
136 [255] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
137 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
138 #if serve |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
139 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
140 largefiles clients refuse to push largefiles repos to vanilla servers |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
141 $ mkdir r6 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
142 $ cd r6 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
143 $ hg init |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
144 $ echo c1 > f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
145 $ hg add f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
146 $ hg commit -m "m1" |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
147 Invoking status precommit hook |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
148 A f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
149 $ cat >> .hg/hgrc <<! |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
150 > [web] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
151 > push_ssl = false |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
152 > allow_push = * |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
153 > ! |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
154 $ cd .. |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
155 $ hg clone r6 r7 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
156 updating to branch default |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
157 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
158 $ cd r7 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
159 $ echo c2 > f2 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
160 $ hg add --large f2 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
161 $ hg commit -m "m2" |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
162 Invoking status precommit hook |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
163 A f2 |
29421
ecbbf4d56ee8
largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com>
parents:
29379
diff
changeset
|
164 $ hg verify --large |
ecbbf4d56ee8
largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com>
parents:
29379
diff
changeset
|
165 checking changesets |
ecbbf4d56ee8
largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com>
parents:
29379
diff
changeset
|
166 checking manifests |
ecbbf4d56ee8
largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com>
parents:
29379
diff
changeset
|
167 crosschecking files in changesets and manifests |
ecbbf4d56ee8
largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com>
parents:
29379
diff
changeset
|
168 checking files |
ecbbf4d56ee8
largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com>
parents:
29379
diff
changeset
|
169 2 files, 2 changesets, 2 total revisions |
ecbbf4d56ee8
largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com>
parents:
29379
diff
changeset
|
170 searching 1 changesets for largefiles |
ecbbf4d56ee8
largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com>
parents:
29379
diff
changeset
|
171 verified existence of 1 revisions of 1 largefiles |
28549 | 172 $ hg serve --config extensions.largefiles=! -R ../r6 -d -p $HGPORT --pid-file ../hg.pid |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
173 $ cat ../hg.pid >> $DAEMON_PIDS |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
174 $ hg push http://localhost:$HGPORT |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
175 pushing to http://localhost:$HGPORT/ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
176 searching for changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
177 abort: http://localhost:$HGPORT/ does not appear to be a largefile store |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
178 [255] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
179 $ cd .. |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
180 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
181 putlfile errors are shown (issue3123) |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
182 Corrupt the cached largefile in r7 and move it out of the servers usercache |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
183 $ mv r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 . |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
184 $ echo 'client side corruption' > r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
185 $ rm "$USERCACHE/4cdac4d8b084d0b599525cf732437fb337d422a8" |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
186 $ hg init empty |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
187 $ hg serve -R empty -d -p $HGPORT1 --pid-file hg.pid \ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
188 > --config 'web.allow_push=*' --config web.push_ssl=False |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
189 $ cat hg.pid >> $DAEMON_PIDS |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
190 $ hg push -R r7 http://localhost:$HGPORT1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
191 pushing to http://localhost:$HGPORT1/ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
192 searching for changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
193 remote: largefiles: failed to put 4cdac4d8b084d0b599525cf732437fb337d422a8 into store: largefile contents do not match hash |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
35152
diff
changeset
|
194 abort: remotestore: could not put $TESTTMP/r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 to remote store http://localhost:$HGPORT1/ |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
195 [255] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
196 $ mv 4cdac4d8b084d0b599525cf732437fb337d422a8 r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
197 Push of file that exists on server but is corrupted - magic healing would be nice ... but too magic |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
198 $ echo "server side corruption" > empty/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
199 $ hg push -R r7 http://localhost:$HGPORT1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
200 pushing to http://localhost:$HGPORT1/ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
201 searching for changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
202 remote: adding changesets |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
203 remote: adding manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
204 remote: adding file changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
205 remote: added 2 changesets with 2 changes to 2 files |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
206 $ cat empty/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
207 server side corruption |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
208 $ rm -rf empty |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
209 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
210 Push a largefiles repository to a served empty repository |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
211 $ hg init r8 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
212 $ echo c3 > r8/f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
213 $ hg add --large r8/f1 -R r8 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
214 $ hg commit -m "m1" -R r8 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
215 Invoking status precommit hook |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
216 A f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
217 $ hg init empty |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
218 $ hg serve -R empty -d -p $HGPORT2 --pid-file hg.pid \ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
219 > --config 'web.allow_push=*' --config web.push_ssl=False |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
220 $ cat hg.pid >> $DAEMON_PIDS |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
221 $ rm "${USERCACHE}"/* |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
222 $ hg push -R r8 http://localhost:$HGPORT2/#default |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
223 pushing to http://localhost:$HGPORT2/ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
224 searching for changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
225 remote: adding changesets |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
226 remote: adding manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
227 remote: adding file changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
228 remote: added 1 changesets with 1 changes to 1 files |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
229 $ [ -f "${USERCACHE}"/02a439e5c31c526465ab1a0ca1f431f76b827b90 ] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
230 $ [ -f empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 ] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
231 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
232 Clone over http, no largefiles pulled on clone. |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
233 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
234 $ hg clone http://localhost:$HGPORT2/#default http-clone -U |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
235 adding changesets |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
236 adding manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
237 adding file changes |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
238 added 1 changesets with 1 changes to 1 files |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
33963
diff
changeset
|
239 new changesets cf03e5bb9936 |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
240 |
26417
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
241 Archive contains largefiles |
33963
9a0f33f497cd
tests: update test-largefiles-wireproto to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33335
diff
changeset
|
242 >>> import os |
9a0f33f497cd
tests: update test-largefiles-wireproto to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33335
diff
changeset
|
243 >>> import urllib2 |
26417
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
244 >>> u = 'http://localhost:%s/archive/default.zip' % os.environ['HGPORT2'] |
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
245 >>> with open('archive.zip', 'w') as f: |
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
246 ... f.write(urllib2.urlopen(u).read()) |
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
247 $ unzip -t archive.zip |
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
248 Archive: archive.zip |
29562
cda10ff3175a
tests: glob whitespace between path and OK in unzip(1) output
Augie Fackler <augie@google.com>
parents:
29421
diff
changeset
|
249 testing: empty-default/.hg_archival.txt*OK (glob) |
cda10ff3175a
tests: glob whitespace between path and OK in unzip(1) output
Augie Fackler <augie@google.com>
parents:
29421
diff
changeset
|
250 testing: empty-default/f1*OK (glob) |
26417
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
251 No errors detected in compressed data of archive.zip. |
9a466b9f9792
largefiles: restore archiving largefiles with hgweb (issue4859)
Matt Harbison <matt_harbison@yahoo.com>
parents:
25495
diff
changeset
|
252 |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
253 test 'verify' with remotestore: |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
254 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
255 $ rm "${USERCACHE}"/02a439e5c31c526465ab1a0ca1f431f76b827b90 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
256 $ mv empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 . |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
257 $ hg -R http-clone verify --large --lfa |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
258 checking changesets |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
259 checking manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
260 crosschecking files in changesets and manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
261 checking files |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
262 1 files, 1 changesets, 1 total revisions |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
263 searching 1 changesets for largefiles |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
264 changeset 0:cf03e5bb9936: f1 missing |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
265 verified existence of 1 revisions of 1 largefiles |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
266 [1] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
267 $ mv 02a439e5c31c526465ab1a0ca1f431f76b827b90 empty/.hg/largefiles/ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
268 $ hg -R http-clone -q verify --large --lfa |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
269 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
270 largefiles pulled on update - a largefile missing on the server: |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
271 $ mv empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 . |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
272 $ hg -R http-clone up --config largefiles.usercache=http-clone-usercache |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
273 getting changed largefiles |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
274 f1: largefile 02a439e5c31c526465ab1a0ca1f431f76b827b90 not available from http://localhost:$HGPORT2/ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
275 0 largefiles updated, 0 removed |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
276 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
277 $ hg -R http-clone st |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
278 ! f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
279 $ hg -R http-clone up -Cqr null |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
280 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
281 largefiles pulled on update - a largefile corrupted on the server: |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
282 $ echo corruption > empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
283 $ hg -R http-clone up --config largefiles.usercache=http-clone-usercache |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
284 getting changed largefiles |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
285 f1: data corruption (expected 02a439e5c31c526465ab1a0ca1f431f76b827b90, got 6a7bb2556144babe3899b25e5428123735bb1e27) |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
286 0 largefiles updated, 0 removed |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
287 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
288 $ hg -R http-clone st |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
289 ! f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
290 $ [ ! -f http-clone/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 ] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
291 $ [ ! -f http-clone/f1 ] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
292 $ [ ! -f http-clone-usercache ] |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
293 $ hg -R http-clone verify --large --lfc |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
294 checking changesets |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
295 checking manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
296 crosschecking files in changesets and manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
297 checking files |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
298 1 files, 1 changesets, 1 total revisions |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
299 searching 1 changesets for largefiles |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
300 verified contents of 1 revisions of 1 largefiles |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
301 $ hg -R http-clone up -Cqr null |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
302 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
303 largefiles pulled on update - no server side problems: |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
304 $ mv 02a439e5c31c526465ab1a0ca1f431f76b827b90 empty/.hg/largefiles/ |
25125
bd625cd4e5e7
progress: get the extremely verbose output out of default debug
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23139
diff
changeset
|
305 $ hg -R http-clone --debug up --config largefiles.usercache=http-clone-usercache --config progress.debug=true |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
306 resolving manifests |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
307 branchmerge: False, force: False, partial: False |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
308 ancestor: 000000000000, local: 000000000000+, remote: cf03e5bb9936 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
309 .hglf/f1: remote created -> g |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
310 getting .hglf/f1 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
311 updating: .hglf/f1 1/1 files (100.00%) |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
312 getting changed largefiles |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
313 using http://localhost:$HGPORT2/ |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
314 sending capabilities command |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
315 sending batch command |
28463
19b4a2087dfc
largefiles: specify unit for ui.progress when operating on files
Anton Shestakov <av6@dwimlabs.net>
parents:
26417
diff
changeset
|
316 getting largefiles: 0/1 files (0.00%) |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
317 getting f1:02a439e5c31c526465ab1a0ca1f431f76b827b90 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
318 sending getlfile command |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
319 found 02a439e5c31c526465ab1a0ca1f431f76b827b90 in store |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
320 1 largefiles updated, 0 removed |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
321 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
322 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
323 $ ls http-clone-usercache/* |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
324 http-clone-usercache/02a439e5c31c526465ab1a0ca1f431f76b827b90 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
325 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
326 $ rm -rf empty http-clone* |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
327 |
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
328 used all HGPORTs, kill all daemons |
25474
8c14f87bd0ae
tests: drop DAEMON_PIDS from killdaemons calls
Matt Mackall <mpm@selenic.com>
parents:
25472
diff
changeset
|
329 $ killdaemons.py |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
330 |
29068
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
331 largefiles should batch verify remote calls |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
332 |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
333 $ hg init batchverifymain |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
334 $ cd batchverifymain |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
335 $ echo "aaa" >> a |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
336 $ hg add --large a |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
337 $ hg commit -m "a" |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
338 Invoking status precommit hook |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
339 A a |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
340 $ echo "bbb" >> b |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
341 $ hg add --large b |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
342 $ hg commit -m "b" |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
343 Invoking status precommit hook |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
344 A b |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
345 $ cd .. |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
346 $ hg serve -R batchverifymain -d -p $HGPORT --pid-file hg.pid \ |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
347 > -A access.log |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
348 $ cat hg.pid >> $DAEMON_PIDS |
29218
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
349 $ hg clone --noupdate http://localhost:$HGPORT batchverifyclone |
29068
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
350 requesting all changes |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
351 adding changesets |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
352 adding manifests |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
353 adding file changes |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
354 added 2 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:
33963
diff
changeset
|
355 new changesets 567253b0f523:04d19c27a332 |
29218
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
356 $ hg -R batchverifyclone verify --large --lfa |
29068
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
357 checking changesets |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
358 checking manifests |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
359 crosschecking files in changesets and manifests |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
360 checking files |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
361 2 files, 2 changesets, 2 total revisions |
29218
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
362 searching 2 changesets for largefiles |
29068
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
363 verified existence of 2 revisions of 2 largefiles |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
364 $ tail -1 access.log |
35152
c1b94f34a11a
tests: re-add (glob) for $LOCALIP matches
Augie Fackler <augie@google.com>
parents:
35074
diff
changeset
|
365 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=statlfile+sha%3D972a1a11f19934401291cc99117ec614933374ce%3Bstatlfile+sha%3Dc801c9cfe94400963fcb683246217d5db77f9a9a x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob) |
29218
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
366 $ hg -R batchverifyclone update |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
367 getting changed largefiles |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
368 2 largefiles updated, 0 removed |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
369 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
370 |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
371 Clear log file before next test |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
372 |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
373 $ printf "" > access.log |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
374 |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
375 Verify should check file on remote server only when file is not |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
376 available locally. |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
377 |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
378 $ echo "ccc" >> batchverifymain/c |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
379 $ hg -R batchverifymain status |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
380 ? c |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
381 $ hg -R batchverifymain add --large batchverifymain/c |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
382 $ hg -R batchverifymain commit -m "c" |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
383 Invoking status precommit hook |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
384 A c |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
385 $ hg -R batchverifyclone pull |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
386 pulling from http://localhost:$HGPORT/ |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
387 searching for changes |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
388 adding changesets |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
389 adding manifests |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
390 adding file changes |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
391 added 1 changesets with 1 changes to 1 files |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
33963
diff
changeset
|
392 new changesets 6bba8cb6935d |
29218
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
393 (run 'hg update' to get a working copy) |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
394 $ hg -R batchverifyclone verify --lfa |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
395 checking changesets |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
396 checking manifests |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
397 crosschecking files in changesets and manifests |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
398 checking files |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
399 3 files, 3 changesets, 3 total revisions |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
400 searching 3 changesets for largefiles |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
401 verified existence of 3 revisions of 3 largefiles |
fd288d118074
largefiles: send statlfile remote calls only for nonexisting locally files
liscju <piotr.listkiewicz@gmail.com>
parents:
29068
diff
changeset
|
402 $ tail -1 access.log |
35152
c1b94f34a11a
tests: re-add (glob) for $LOCALIP matches
Augie Fackler <augie@google.com>
parents:
35074
diff
changeset
|
403 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=statlfile+sha%3Dc8559c3c9cfb42131794b7d8009230403b9b454c x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob) |
29068
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
404 |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
405 $ killdaemons.py |
305f9c36a0f5
largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com>
parents:
28549
diff
changeset
|
406 |
30332
318a24b52eeb
spelling: fixes of non-dictionary words
Mads Kiilerich <madski@unity3d.com>
parents:
29562
diff
changeset
|
407 largefiles should not ask for password again after successful authorization |
29379
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
408 |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
409 $ hg init credentialmain |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
410 $ cd credentialmain |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
411 $ echo "aaa" >> a |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
412 $ hg add --large a |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
413 $ hg commit -m "a" |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
414 Invoking status precommit hook |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
415 A a |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
416 |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
417 Before running server clear the user cache to force clone to download |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
418 a large file from the server rather than to get it from the cache |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
419 |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
420 $ rm "${USERCACHE}"/* |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
421 |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
422 $ cd .. |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
423 $ cat << EOT > userpass.py |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
424 > import base64 |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
425 > from mercurial.hgweb import common |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
426 > def perform_authentication(hgweb, req, op): |
36877
02bea04b4c54
hgweb: transition permissions hooks to modern request type (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36760
diff
changeset
|
427 > auth = req.headers.get('Authorization') |
29379
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
428 > if not auth: |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
429 > raise common.ErrorResponse(common.HTTP_UNAUTHORIZED, 'who', |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
430 > [('WWW-Authenticate', 'Basic Realm="mercurial"')]) |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
431 > if base64.b64decode(auth.split()[1]).split(':', 1) != ['user', 'pass']: |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
432 > raise common.ErrorResponse(common.HTTP_FORBIDDEN, 'no') |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
433 > def extsetup(): |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
434 > common.permhooks.insert(0, perform_authentication) |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
435 > EOT |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
436 $ hg serve --config extensions.x=userpass.py -R credentialmain \ |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
437 > -d -p $HGPORT --pid-file hg.pid -A access.log |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
438 $ cat hg.pid >> $DAEMON_PIDS |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
439 $ cat << EOF > get_pass.py |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
440 > import getpass |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
441 > def newgetpass(arg): |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
442 > return "pass" |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
443 > getpass.getpass = newgetpass |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
444 > EOF |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
445 $ hg clone --config ui.interactive=true --config extensions.getpass=get_pass.py \ |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
446 > http://user@localhost:$HGPORT credentialclone |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
447 http authorization required for http://localhost:$HGPORT/ |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
448 realm: mercurial |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
449 user: user |
36754
e3c228b4510d
wireproto: declare operation type for most commands (BC) (SEC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
450 password: requesting all changes |
e3c228b4510d
wireproto: declare operation type for most commands (BC) (SEC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
451 adding changesets |
29379
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
452 adding manifests |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
453 adding file changes |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
454 added 1 changesets with 1 changes to 1 files |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
33963
diff
changeset
|
455 new changesets 567253b0f523 |
29379
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
456 updating to branch default |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
457 getting changed largefiles |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
458 1 largefiles updated, 0 removed |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
459 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
460 |
31770
3ed26ba54685
test-serve: kill daemons before deleting the access and error logs
Matt Harbison <matt_harbison@yahoo.com>
parents:
31008
diff
changeset
|
461 $ killdaemons.py |
29379
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
462 $ rm hg.pid access.log |
fc777c855d66
largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com>
parents:
29218
diff
changeset
|
463 |
21424
d13b4ecdb680
test: split test-largefile.t in multiple file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
464 #endif |