Mercurial > hg
annotate tests/test-lfs-serve.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 | fa865878a849 |
children | f4e84dfc06fd |
rev | line source |
---|---|
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
1 #testcases lfsremote-on lfsremote-off |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
2 #require serve |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
3 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
4 This test splits `hg serve` with and without using the extension into separate |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
5 tests cases. The tests are broken down as follows, where "LFS"/"No-LFS" |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
6 indicates whether or not there are commits that use an LFS file, and "D"/"E" |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
7 indicates whether or not the extension is loaded. The "X" cases are not tested |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
8 individually, because the lfs requirement causes the process to bail early if |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
9 the extension is disabled. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
10 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
11 . Server |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
12 . |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
13 . No-LFS LFS |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
14 . +----------------------------+ |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
15 . | || D | E | D | E | |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
16 . |---++=======================| |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
17 . C | D || N/A | #1 | X | #4 | |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
18 . l No +---++-----------------------| |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
19 . i LFS | E || #2 | #2 | X | #5 | |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
20 . e +---++-----------------------| |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
21 . n | D || X | X | X | X | |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
22 . t LFS |---++-----------------------| |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
23 . | E || #3 | #3 | X | #6 | |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
24 . |---++-----------------------+ |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
25 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
26 $ hg init server |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
27 $ SERVER_REQUIRES="$TESTTMP/server/.hg/requires" |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
28 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
29 Skip the experimental.changegroup3=True config. Failure to agree on this comes |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
30 first, and causes a "ValueError: no common changegroup version" or "abort: |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
31 HTTP Error 500: Internal Server Error", if the extension is only loaded on one |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
32 side. If that *is* enabled, the subsequent failure is "abort: missing processor |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
33 for flag '0x2000'!" if the extension is only loaded on one side (possibly also |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
34 masked by the Internal Server Error message). |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
35 $ cat >> $HGRCPATH <<EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
36 > [lfs] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
37 > url=file:$TESTTMP/dummy-remote/ |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
38 > threshold=10 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
39 > [web] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
40 > allow_push=* |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
41 > push_ssl=False |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
42 > EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
43 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
44 #if lfsremote-on |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
45 $ hg --config extensions.lfs= -R server \ |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
46 > serve -p $HGPORT -d --pid-file=hg.pid --errorlog=$TESTTMP/errors.log |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
47 #else |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
48 $ hg --config extensions.lfs=! -R server \ |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
49 > serve -p $HGPORT -d --pid-file=hg.pid --errorlog=$TESTTMP/errors.log |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
50 #endif |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
51 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
52 $ cat hg.pid >> $DAEMON_PIDS |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
53 $ hg clone -q http://localhost:$HGPORT client |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
54 $ grep 'lfs' client/.hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
55 [1] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
56 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
57 -------------------------------------------------------------------------------- |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
58 Case #1: client with non-lfs content and the extension disabled; server with |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
59 non-lfs content, and the extension enabled. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
60 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
61 $ cd client |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
62 $ echo 'non-lfs' > nonlfs.txt |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
63 $ hg ci -Aqm 'non-lfs' |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
64 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
65 [1] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
66 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
67 #if lfsremote-on |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
68 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
69 $ hg push -q |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
70 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
71 [1] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
72 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
73 $ hg clone -q http://localhost:$HGPORT $TESTTMP/client1_clone |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
74 $ grep 'lfs' $TESTTMP/client1_clone/.hg/requires $SERVER_REQUIRES |
35505
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
75 [1] |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
76 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
77 $ hg init $TESTTMP/client1_pull |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
78 $ hg -R $TESTTMP/client1_pull pull -q http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
79 $ grep 'lfs' $TESTTMP/client1_pull/.hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
80 [1] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
81 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
82 $ hg identify http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
83 d437e1d24fbd |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
84 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
85 #endif |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
86 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
87 -------------------------------------------------------------------------------- |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
88 Case #2: client with non-lfs content and the extension enabled; server with |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
89 non-lfs content, and the extension state controlled by #testcases. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
90 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
91 $ cat >> $HGRCPATH <<EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
92 > [extensions] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
93 > lfs = |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
94 > EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
95 $ echo 'non-lfs' > nonlfs2.txt |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
96 $ hg ci -Aqm 'non-lfs file with lfs client' |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
97 |
35505
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
98 Since no lfs content has been added yet, the push is allowed, even when the |
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
99 extension is not enabled remotely. |
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
100 |
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
101 $ hg push -q |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
102 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
103 [1] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
104 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
105 $ hg clone -q http://localhost:$HGPORT $TESTTMP/client2_clone |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
106 $ grep 'lfs' $TESTTMP/client2_clone/.hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
107 [1] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
108 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
109 $ hg init $TESTTMP/client2_pull |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
110 $ hg -R $TESTTMP/client2_pull pull -q http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
111 $ grep 'lfs' $TESTTMP/client2_pull/.hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
112 [1] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
113 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
114 $ hg identify http://localhost:$HGPORT |
35505
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
115 1477875038c6 |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
116 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
117 -------------------------------------------------------------------------------- |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
118 Case #3: client with lfs content and the extension enabled; server with |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
119 non-lfs content, and the extension state controlled by #testcases. The server |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
120 should have an 'lfs' requirement after it picks up its first commit with a blob. |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
121 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
122 $ echo 'this is a big lfs file' > lfs.bin |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
123 $ hg ci -Aqm 'lfs' |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
124 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
125 .hg/requires:lfs |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
126 |
35506
fa865878a849
lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents:
35505
diff
changeset
|
127 #if lfsremote-off |
fa865878a849
lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents:
35505
diff
changeset
|
128 $ hg push -q |
fa865878a849
lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents:
35505
diff
changeset
|
129 abort: required features are not supported in the destination: lfs |
fa865878a849
lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents:
35505
diff
changeset
|
130 (enable the lfs extension on the server) |
fa865878a849
lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents:
35505
diff
changeset
|
131 [255] |
fa865878a849
lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents:
35505
diff
changeset
|
132 #else |
fa865878a849
lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents:
35505
diff
changeset
|
133 $ hg push -q |
fa865878a849
lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents:
35505
diff
changeset
|
134 #endif |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
135 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
136 .hg/requires:lfs |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
137 $TESTTMP/server/.hg/requires:lfs (lfsremote-on !) |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
138 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
139 $ hg clone -q http://localhost:$HGPORT $TESTTMP/client3_clone |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
140 $ grep 'lfs' $TESTTMP/client3_clone/.hg/requires $SERVER_REQUIRES || true |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
141 $TESTTMP/client3_clone/.hg/requires:lfs (lfsremote-on !) |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
142 $TESTTMP/server/.hg/requires:lfs (lfsremote-on !) |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
143 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
144 $ hg init $TESTTMP/client3_pull |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
145 $ hg -R $TESTTMP/client3_pull pull -q http://localhost:$HGPORT |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
146 $ grep 'lfs' $TESTTMP/client3_pull/.hg/requires $SERVER_REQUIRES || true |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
147 $TESTTMP/client3_pull/.hg/requires:lfs (lfsremote-on !) |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
148 $TESTTMP/server/.hg/requires:lfs (lfsremote-on !) |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
149 |
35505
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
150 The difference here is the push failed above when the extension isn't |
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
151 enabled on the server. |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
152 $ hg identify http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
153 8374dc4052cb (lfsremote-on !) |
35505
2526579a30e0
lfs: allow non-lfs exchanges when the extension is only enabled on one side
Matt Harbison <matt_harbison@yahoo.com>
parents:
35504
diff
changeset
|
154 1477875038c6 (lfsremote-off !) |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
155 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
156 Don't bother testing the lfsremote-off cases- the server won't be able |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
157 to launch if there's lfs content and the extension is disabled. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
158 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
159 #if lfsremote-on |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
160 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
161 -------------------------------------------------------------------------------- |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
162 Case #4: client with non-lfs content and the extension disabled; server with |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
163 lfs content, and the extension enabled. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
164 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
165 $ cat >> $HGRCPATH <<EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
166 > [extensions] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
167 > lfs = ! |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
168 > EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
169 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
170 $ hg init $TESTTMP/client4 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
171 $ cd $TESTTMP/client4 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
172 $ cat >> .hg/hgrc <<EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
173 > [paths] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
174 > default = http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
175 > EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
176 $ echo 'non-lfs' > nonlfs2.txt |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
177 $ hg ci -Aqm 'non-lfs' |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
178 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
179 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
180 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
181 $ hg push -q --force |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
182 warning: repository is unrelated |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
183 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
184 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
185 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
186 TODO: fail more gracefully. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
187 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
188 $ hg clone -q http://localhost:$HGPORT $TESTTMP/client4_clone |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
189 abort: HTTP Error 500: Internal Server Error |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
190 [255] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
191 $ grep 'lfs' $TESTTMP/client4_clone/.hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
192 grep: $TESTTMP/client4_clone/.hg/requires: $ENOENT$ |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
193 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
194 [2] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
195 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
196 TODO: fail more gracefully. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
197 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
198 $ hg init $TESTTMP/client4_pull |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
199 $ hg -R $TESTTMP/client4_pull pull -q http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
200 abort: HTTP Error 500: Internal Server Error |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
201 [255] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
202 $ grep 'lfs' $TESTTMP/client4_pull/.hg/requires $SERVER_REQUIRES |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
203 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
204 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
205 $ hg identify http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
206 03b080fa9d93 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
207 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
208 -------------------------------------------------------------------------------- |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
209 Case #5: client with non-lfs content and the extension enabled; server with |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
210 lfs content, and the extension enabled. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
211 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
212 $ cat >> $HGRCPATH <<EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
213 > [extensions] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
214 > lfs = |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
215 > EOF |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
216 $ echo 'non-lfs' > nonlfs3.txt |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
217 $ hg ci -Aqm 'non-lfs file with lfs client' |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
218 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
219 $ hg push -q |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
220 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
221 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
222 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
223 $ hg clone -q http://localhost:$HGPORT $TESTTMP/client5_clone |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
224 $ grep 'lfs' $TESTTMP/client5_clone/.hg/requires $SERVER_REQUIRES |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
225 $TESTTMP/client5_clone/.hg/requires:lfs |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
226 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
227 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
228 $ hg init $TESTTMP/client5_pull |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
229 $ hg -R $TESTTMP/client5_pull pull -q http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
230 $ grep 'lfs' $TESTTMP/client5_pull/.hg/requires $SERVER_REQUIRES |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
231 $TESTTMP/client5_pull/.hg/requires:lfs |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
232 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
233 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
234 $ hg identify http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
235 c729025cc5e3 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
236 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
237 -------------------------------------------------------------------------------- |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
238 Case #6: client with lfs content and the extension enabled; server with |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
239 lfs content, and the extension enabled. |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
240 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
241 $ echo 'this is another lfs file' > lfs2.txt |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
242 $ hg ci -Aqm 'lfs file with lfs client' |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
243 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
244 $ hg push -q |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
245 $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
246 .hg/requires:lfs |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
247 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
248 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
249 $ hg clone -q http://localhost:$HGPORT $TESTTMP/client6_clone |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
250 $ grep 'lfs' $TESTTMP/client6_clone/.hg/requires $SERVER_REQUIRES |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
251 $TESTTMP/client6_clone/.hg/requires:lfs |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
252 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
253 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
254 $ hg init $TESTTMP/client6_pull |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
255 $ hg -R $TESTTMP/client6_pull pull -q http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
256 $ grep 'lfs' $TESTTMP/client6_pull/.hg/requires $SERVER_REQUIRES |
35504
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
257 $TESTTMP/client6_pull/.hg/requires:lfs |
6bb940de4c4c
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents:
35503
diff
changeset
|
258 $TESTTMP/server/.hg/requires:lfs |
35503
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
259 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
260 $ hg identify http://localhost:$HGPORT |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
261 d3b84d50eacb |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
262 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
263 -------------------------------------------------------------------------------- |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
264 Misc: process dies early if a requirement exists and the extension is disabled |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
265 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
266 $ hg --config extensions.lfs=! summary |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
267 abort: repository requires features unknown to this Mercurial: lfs! |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
268 (see https://mercurial-scm.org/wiki/MissingRequirement for more information) |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
269 [255] |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
270 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
271 #endif |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
272 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
273 $ $PYTHON $TESTDIR/killdaemons.py $DAEMON_PIDS |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
274 |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
275 #if lfsremote-on |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
276 $ cat $TESTTMP/errors.log | grep '^[A-Z]' |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
277 Traceback (most recent call last): |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
278 ValueError: no common changegroup version |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
279 Traceback (most recent call last): |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
280 ValueError: no common changegroup version |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
281 #else |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
282 $ cat $TESTTMP/errors.log |
bbcd2e478391
test-lfs: add tests covering http exchanges
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
283 #endif |