test-lfs-serve-access.t
151 lines
| 7.4 KiB
| text/troff
|
Tads3Lexer
/ tests / test-lfs-serve-access.t
Gregory Szorc
|
r37366 | #require serve no-reposimplestore | ||
Matt Harbison
|
r37265 | |||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> lfs= | ||||
> [lfs] | ||||
> url=http://localhost:$HGPORT/.git/info/lfs | ||||
> track=all() | ||||
> [web] | ||||
> push_ssl = False | ||||
> allow-push = * | ||||
> EOF | ||||
Serving LFS files can experimentally be turned off. The long term solution is | ||||
to support the 'verify' action in both client and server, so that the server can | ||||
tell the client to store files elsewhere. | ||||
$ hg init server | ||||
$ hg --config "lfs.usercache=$TESTTMP/servercache" \ | ||||
> --config experimental.lfs.serve=False -R server serve -d \ | ||||
> -p $HGPORT --pid-file=hg.pid -A $TESTTMP/access.log -E $TESTTMP/errors.log | ||||
$ cat hg.pid >> $DAEMON_PIDS | ||||
Uploads fail... | ||||
$ hg init client | ||||
$ echo 'this-is-an-lfs-file' > client/lfs.bin | ||||
$ hg -R client ci -Am 'initial commit' | ||||
adding lfs.bin | ||||
$ hg -R client push http://localhost:$HGPORT | ||||
pushing to http://localhost:$HGPORT/ | ||||
searching for changes | ||||
abort: LFS HTTP error: HTTP Error 400: no such method: .git (action=upload)! | ||||
[255] | ||||
... so do a local push to make the data available. Remove the blob from the | ||||
default cache, so it attempts to download. | ||||
$ hg --config "lfs.usercache=$TESTTMP/servercache" \ | ||||
> --config "lfs.url=null://" \ | ||||
> -R client push -q server | ||||
Matt Harbison
|
r37635 | $ mv `hg config lfs.usercache` $TESTTMP/servercache | ||
Matt Harbison
|
r37265 | |||
Downloads fail... | ||||
$ hg clone http://localhost:$HGPORT httpclone | ||||
requesting all changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
new changesets 525251863cad | ||||
updating to branch default | ||||
abort: LFS HTTP error: HTTP Error 400: no such method: .git (action=download)! | ||||
[255] | ||||
$ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS | ||||
$ cat $TESTTMP/access.log $TESTTMP/errors.log | ||||
Gregory Szorc
|
r37574 | $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
Joerg Sonnenberger
|
r37516 | $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D525251863cad618e55d483555f3d00a2ca99597e x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob) | ||
$LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob) | ||||
Matt Harbison
|
r37265 | $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 400 - (glob) | ||
Gregory Szorc
|
r37574 | $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
Joerg Sonnenberger
|
r37516 | $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob) | ||
$LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=525251863cad618e55d483555f3d00a2ca99597e&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob) | ||||
Matt Harbison
|
r37265 | $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 400 - (glob) | ||
Matt Harbison
|
r37635 | |||
Blob URIs are correct when --prefix is used | ||||
$ rm -f $TESTTMP/access.log $TESTTMP/errors.log | ||||
$ hg --config "lfs.usercache=$TESTTMP/servercache" -R server serve -d \ | ||||
> -p $HGPORT --pid-file=hg.pid --prefix=subdir/mount/point \ | ||||
> -A $TESTTMP/access.log -E $TESTTMP/errors.log | ||||
$ cat hg.pid >> $DAEMON_PIDS | ||||
$ hg --config lfs.url=http://localhost:$HGPORT/subdir/mount/point/.git/info/lfs \ | ||||
> clone --debug http://localhost:$HGPORT/subdir/mount/point cloned2 | ||||
using http://localhost:$HGPORT/subdir/mount/point | ||||
sending capabilities command | ||||
query 1; heads | ||||
sending batch command | ||||
requesting all changes | ||||
sending getbundle command | ||||
bundle2-input-bundle: with-transaction | ||||
bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported | ||||
adding changesets | ||||
add changeset 525251863cad | ||||
adding manifests | ||||
adding file changes | ||||
adding lfs.bin revisions | ||||
added 1 changesets with 1 changes to 1 files | ||||
calling hook pretxnchangegroup.lfs: hgext.lfs.checkrequireslfs | ||||
bundle2-input-part: total payload size 648 | ||||
bundle2-input-part: "listkeys" (params: 1 mandatory) supported | ||||
bundle2-input-part: "phase-heads" supported | ||||
bundle2-input-part: total payload size 24 | ||||
bundle2-input-part: "cache:rev-branch-cache" supported | ||||
bundle2-input-part: total payload size 39 | ||||
bundle2-input-bundle: 3 parts total | ||||
checking for updated bookmarks | ||||
updating the branch cache | ||||
new changesets 525251863cad | ||||
updating to branch default | ||||
resolving manifests | ||||
branchmerge: False, force: False, partial: False | ||||
ancestor: 000000000000, local: 000000000000+, remote: 525251863cad | ||||
Status: 200 | ||||
Content-Length: 371 | ||||
Content-Type: application/vnd.git-lfs+json | ||||
Date: $HTTP_DATE$ | ||||
Server: testing stub value | ||||
{ | ||||
"objects": [ | ||||
{ | ||||
"actions": { | ||||
"download": { | ||||
"expires_at": "$ISO_8601_DATE_TIME$" | ||||
"header": { | ||||
"Accept": "application/vnd.git-lfs" | ||||
} | ||||
"href": "http://localhost:$HGPORT/subdir/mount/point/.hg/lfs/objects/f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e" | ||||
} | ||||
} | ||||
"oid": "f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e" | ||||
"size": 20 | ||||
} | ||||
] | ||||
"transfer": "basic" | ||||
} | ||||
lfs: downloading f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e (20 bytes) | ||||
Status: 200 | ||||
Content-Length: 20 | ||||
Content-Type: application/octet-stream | ||||
Date: $HTTP_DATE$ | ||||
Server: testing stub value | ||||
lfs: adding f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e to the usercache | ||||
lfs: processed: f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e | ||||
lfs.bin: remote created -> g | ||||
getting lfs.bin | ||||
lfs: found f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e in the local lfs store | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS | ||||
$ cat $TESTTMP/access.log $TESTTMP/errors.log | ||||
$LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=capabilities HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=525251863cad618e55d483555f3d00a2ca99597e&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /subdir/mount/point/.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point/.hg/lfs/objects/f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e HTTP/1.1" 200 - (glob) | ||||