test-lfs-test-server.t
943 lines
| 35.6 KiB
| text/troff
|
Tads3Lexer
/ tests / test-lfs-test-server.t
|
r38041 | #require no-reposimplestore no-chg | ||
|
r37171 | #testcases git-server hg-server | ||
#if git-server | ||||
|
r35137 | #require lfs-test-server | ||
|
r37171 | #else | ||
#require serve | ||||
#endif | ||||
|
r35097 | |||
|
r37171 | #if git-server | ||
|
r35097 | $ LFS_LISTEN="tcp://:$HGPORT" | ||
$ LFS_HOST="localhost:$HGPORT" | ||||
$ LFS_PUBLIC=1 | ||||
$ export LFS_LISTEN LFS_HOST LFS_PUBLIC | ||||
|
r37171 | #else | ||
$ LFS_HOST="localhost:$HGPORT/.git/info/lfs" | ||||
#endif | ||||
#if no-windows git-server | ||||
|
r35097 | $ lfs-test-server &> lfs-server.log & | ||
$ echo $! >> $DAEMON_PIDS | ||||
|
r37171 | #endif | ||
#if windows git-server | ||||
|
r35139 | $ cat >> $TESTTMP/spawn.py <<EOF | ||
> import os | ||||
> import subprocess | ||||
> import sys | ||||
> | ||||
> for path in os.environ["PATH"].split(os.pathsep): | ||||
> exe = os.path.join(path, 'lfs-test-server.exe') | ||||
> if os.path.exists(exe): | ||||
> with open('lfs-server.log', 'wb') as out: | ||||
> p = subprocess.Popen(exe, stdout=out, stderr=out) | ||||
> sys.stdout.write('%s\n' % p.pid) | ||||
> sys.exit(0) | ||||
> sys.exit(1) | ||||
> EOF | ||||
|
r39743 | $ "$PYTHON" $TESTTMP/spawn.py >> $DAEMON_PIDS | ||
|
r35139 | #endif | ||
|
r35097 | |||
$ cat >> $HGRCPATH <<EOF | ||||
|
r44747 | > [experimental] | ||
> lfs.worker-enable = False | ||||
|
r35097 | > [extensions] | ||
> lfs= | ||||
> [lfs] | ||||
|
r37171 | > url=http://foo:bar@$LFS_HOST | ||
|
r35636 | > track=all() | ||
|
r37171 | > [web] | ||
> push_ssl = False | ||||
> allow-push = * | ||||
|
r35097 | > EOF | ||
|
r37171 | Use a separate usercache, otherwise the server sees what the client commits, and | ||
never requests a transfer. | ||||
#if hg-server | ||||
$ hg init server | ||||
$ hg --config "lfs.usercache=$TESTTMP/servercache" -R server serve -d \ | ||||
> -p $HGPORT --pid-file=hg.pid -A $TESTTMP/access.log -E $TESTTMP/errors.log | ||||
$ cat hg.pid >> $DAEMON_PIDS | ||||
#endif | ||||
|
r35097 | $ hg init repo1 | ||
$ cd repo1 | ||||
$ echo THIS-IS-LFS > a | ||||
$ hg commit -m a -A a | ||||
|
r35544 | A push can be serviced directly from the usercache if it isn't in the local | ||
store. | ||||
|
r35097 | $ hg init ../repo2 | ||
|
r35544 | $ mv .hg/store/lfs .hg/store/lfs_ | ||
|
r36943 | $ hg push ../repo2 --debug | ||
http auth: user foo, password *** | ||||
|
r35097 | pushing to ../repo2 | ||
|
r36943 | http auth: user foo, password *** | ||
|
r37582 | http auth: user foo, password *** | ||
|
r36943 | query 1; heads | ||
|
r35097 | searching for changes | ||
|
r36943 | 1 total queries in *s (glob) | ||
listing keys for "phases" | ||||
checking for updated bookmarks | ||||
listing keys for "bookmarks" | ||||
lfs: computing set of blobs to upload | ||||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 309 (git-server !) | ||
Content-Length: 350 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
"actions": { | ||||
"upload": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/objects/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" (git-server !) | ||
"href": "http://localhost:$HGPORT/.hg/lfs/objects/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" (hg-server !) | ||||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" | ||||
|
r36944 | "size": 12 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r35097 | lfs: uploading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes) | ||
|
r37171 | Status: 200 (git-server !) | ||
Status: 201 (hg-server !) | ||||
|
r36944 | Content-Length: 0 | ||
Content-Type: text/plain; charset=utf-8 | ||||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35449 | lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b | ||
|
r35899 | lfs: uploaded 1 files (12 bytes) | ||
|
r35097 | 1 changesets found | ||
|
r36943 | list of changesets: | ||
99a7098854a3984a5c9eab0fc7a2906697b7cb5c | ||||
bundle2-output-bundle: "HG20", 4 parts total | ||||
|
r37005 | bundle2-output-part: "replycaps" * bytes payload (glob) | ||
|
r36943 | bundle2-output-part: "check:heads" streamed payload | ||
bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload | ||||
bundle2-output-part: "phase-heads" 24 bytes payload | ||||
bundle2-input-bundle: with-transaction | ||||
bundle2-input-part: "replycaps" supported | ||||
|
r37005 | bundle2-input-part: total payload size * (glob) | ||
|
r36943 | bundle2-input-part: "check:heads" supported | ||
bundle2-input-part: total payload size 20 | ||||
bundle2-input-part: "changegroup" (params: 1 mandatory) supported | ||||
|
r35097 | adding changesets | ||
|
r36943 | add changeset 99a7098854a3 | ||
|
r35097 | adding manifests | ||
adding file changes | ||||
|
r36943 | adding a revisions | ||
|
r35520 | calling hook pretxnchangegroup.lfs: hgext.lfs.checkrequireslfs | ||
|
r36943 | bundle2-input-part: total payload size 617 | ||
bundle2-input-part: "phase-heads" supported | ||||
bundle2-input-part: total payload size 24 | ||||
|
r43201 | bundle2-input-bundle: 4 parts total | ||
|
r36943 | updating the branch cache | ||
r43167 | added 1 changesets with 1 changes to 1 files | |||
|
r36943 | bundle2-output-bundle: "HG20", 1 parts total | ||
bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload | ||||
bundle2-input-bundle: no-transaction | ||||
bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported | ||||
|
r43201 | bundle2-input-bundle: 1 parts total | ||
|
r36943 | listing keys for "phases" | ||
|
r35544 | $ mv .hg/store/lfs_ .hg/store/lfs | ||
|
r35097 | |||
|
r35281 | Clear the cache to force a download | ||
$ rm -rf `hg config lfs.usercache` | ||||
|
r35097 | $ cd ../repo2 | ||
|
r36943 | $ hg update tip --debug | ||
http auth: user foo, password *** | ||||
|
r35097 | resolving manifests | ||
|
r36943 | branchmerge: False, force: False, partial: False | ||
ancestor: 000000000000, local: 000000000000+, remote: 99a7098854a3 | ||||
|
r37536 | http auth: user foo, password *** | ||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 311 (git-server !) | ||
Content-Length: 352 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" | ||||
|
r36944 | "size": 12 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r35097 | lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes) | ||
|
r36944 | Status: 200 | ||
Content-Length: 12 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35489 | lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache | ||
|
r35449 | lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b | ||
|
r37783 | lfs: downloaded 1 files (12 bytes) | ||
|
r36943 | a: remote created -> g | ||
|
r35940 | getting a | ||
|
r35489 | lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store | ||
|
r35097 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r37171 | When the server has some blobs already. `hg serve` doesn't offer to upload | ||
blobs that it already knows about. Note that lfs-test-server is simply | ||||
toggling the action to 'download'. The Batch API spec says it should omit the | ||||
actions property completely. | ||||
|
r35097 | |||
$ hg mv a b | ||||
$ echo ANOTHER-LARGE-FILE > c | ||||
$ echo ANOTHER-LARGE-FILE2 > d | ||||
$ hg commit -m b-and-c -A b c d | ||||
|
r36943 | $ hg push ../repo1 --debug | ||
http auth: user foo, password *** | ||||
|
r35097 | pushing to ../repo1 | ||
|
r36943 | http auth: user foo, password *** | ||
|
r37582 | http auth: user foo, password *** | ||
|
r36943 | query 1; heads | ||
|
r35097 | searching for changes | ||
|
r36943 | all remote heads known locally | ||
listing keys for "phases" | ||||
checking for updated bookmarks | ||||
listing keys for "bookmarks" | ||||
listing keys for "bookmarks" | ||||
lfs: computing set of blobs to upload | ||||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 901 (git-server !) | ||
Content-Length: 755 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
|
r37171 | "actions": { (git-server !) | ||
"download": { (git-server !) | ||||
"expires_at": "$ISO_8601_DATE_TIME$" (git-server !) | ||||
"header": { (git-server !) | ||||
"Accept": "application/vnd.git-lfs" (git-server !) | ||||
} (git-server !) | ||||
"href": "http://localhost:$HGPORT/objects/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" (git-server !) | ||||
} (git-server !) | ||||
} (git-server !) | ||||
|
r37164 | "oid": "31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" | ||
|
r36944 | "size": 12 | ||
|
r37164 | } | ||
|
r36944 | { | ||
"actions": { | ||||
"upload": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19" | ||||
|
r36944 | "size": 20 | ||
|
r37164 | } | ||
|
r36944 | { | ||
"actions": { | ||||
"upload": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" | ||||
|
r36944 | "size": 19 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r35097 | lfs: need to transfer 2 objects (39 bytes) | ||
lfs: uploading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes) | ||||
|
r37171 | Status: 200 (git-server !) | ||
Status: 201 (hg-server !) | ||||
|
r36944 | Content-Length: 0 | ||
Content-Type: text/plain; charset=utf-8 | ||||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35449 | lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 | ||
|
r35097 | lfs: uploading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes) | ||
|
r37171 | Status: 200 (git-server !) | ||
Status: 201 (hg-server !) | ||||
|
r36944 | Content-Length: 0 | ||
Content-Type: text/plain; charset=utf-8 | ||||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35449 | lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||
|
r35899 | lfs: uploaded 2 files (39 bytes) | ||
|
r35097 | 1 changesets found | ||
|
r36943 | list of changesets: | ||
dfca2c9e2ef24996aa61ba2abd99277d884b3d63 | ||||
bundle2-output-bundle: "HG20", 5 parts total | ||||
|
r37005 | bundle2-output-part: "replycaps" * bytes payload (glob) | ||
|
r36943 | bundle2-output-part: "check:phases" 24 bytes payload | ||
|
r44896 | bundle2-output-part: "check:updated-heads" streamed payload | ||
|
r36943 | bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload | ||
bundle2-output-part: "phase-heads" 24 bytes payload | ||||
bundle2-input-bundle: with-transaction | ||||
bundle2-input-part: "replycaps" supported | ||||
|
r37005 | bundle2-input-part: total payload size * (glob) | ||
|
r36943 | bundle2-input-part: "check:phases" supported | ||
bundle2-input-part: total payload size 24 | ||||
|
r44896 | bundle2-input-part: "check:updated-heads" supported | ||
|
r36943 | bundle2-input-part: total payload size 20 | ||
bundle2-input-part: "changegroup" (params: 1 mandatory) supported | ||||
|
r35097 | adding changesets | ||
|
r36943 | add changeset dfca2c9e2ef2 | ||
|
r35097 | adding manifests | ||
adding file changes | ||||
|
r36943 | adding b revisions | ||
adding c revisions | ||||
adding d revisions | ||||
bundle2-input-part: total payload size 1315 | ||||
bundle2-input-part: "phase-heads" supported | ||||
bundle2-input-part: total payload size 24 | ||||
|
r43201 | bundle2-input-bundle: 5 parts total | ||
|
r36943 | updating the branch cache | ||
r43167 | added 1 changesets with 3 changes to 3 files | |||
|
r36943 | bundle2-output-bundle: "HG20", 1 parts total | ||
bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload | ||||
bundle2-input-bundle: no-transaction | ||||
bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported | ||||
|
r43201 | bundle2-input-bundle: 1 parts total | ||
|
r36943 | listing keys for "phases" | ||
|
r35097 | |||
|
r35281 | Clear the cache to force a download | ||
$ rm -rf `hg config lfs.usercache` | ||||
|
r36943 | $ hg --repo ../repo1 update tip --debug | ||
http auth: user foo, password *** | ||||
|
r35097 | resolving manifests | ||
|
r36943 | branchmerge: False, force: False, partial: False | ||
ancestor: 99a7098854a3, local: 99a7098854a3+, remote: dfca2c9e2ef2 | ||||
|
r37536 | http auth: user foo, password *** | ||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 608 (git-server !) | ||
Content-Length: 670 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19" | ||||
|
r36944 | "size": 20 | ||
|
r37164 | } | ||
|
r36944 | { | ||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" | ||||
|
r36944 | "size": 19 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r35940 | lfs: need to transfer 2 objects (39 bytes) | ||
lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes) | ||||
|
r36944 | Status: 200 | ||
Content-Length: 20 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35940 | lfs: adding 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 to the usercache | ||
lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 | ||||
|
r35097 | lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes) | ||
|
r36944 | Status: 200 | ||
Content-Length: 19 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35489 | lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache | ||
|
r35449 | lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||
|
r37783 | lfs: downloaded 2 files (39 bytes) | ||
|
r36943 | b: remote created -> g | ||
|
r35940 | getting b | ||
lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store | ||||
|
r36943 | c: remote created -> g | ||
|
r35940 | getting c | ||
|
r35489 | lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store | ||
|
r36943 | d: remote created -> g | ||
|
r35097 | getting d | ||
|
r35489 | lfs: found 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 in the local lfs store | ||
|
r35097 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r35492 | Test a corrupt file download, but clear the cache first to force a download. | ||
|
r37171 | `hg serve` indicates a corrupt file without transferring it, unlike | ||
lfs-test-server. | ||||
|
r35490 | |||
$ rm -rf `hg config lfs.usercache` | ||||
|
r37171 | #if git-server | ||
|
r35490 | $ cp $TESTTMP/lfs-content/d1/1e/1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 blob | ||
$ echo 'damage' > $TESTTMP/lfs-content/d1/1e/1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||||
|
r37171 | #else | ||
$ cp $TESTTMP/server/.hg/store/lfs/objects/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 blob | ||||
$ echo 'damage' > $TESTTMP/server/.hg/store/lfs/objects/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||||
#endif | ||||
|
r35490 | $ rm ../repo1/.hg/store/lfs/objects/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||
$ rm ../repo1/* | ||||
|
r35492 | |||
|
r37171 | TODO: give the proper error indication from `hg serve` | ||
|
r36943 | $ hg --repo ../repo1 update -C tip --debug | ||
http auth: user foo, password *** | ||||
|
r35490 | resolving manifests | ||
|
r36943 | branchmerge: False, force: True, partial: False | ||
ancestor: dfca2c9e2ef2+, local: dfca2c9e2ef2+, remote: dfca2c9e2ef2 | ||||
|
r37536 | http auth: user foo, password *** | ||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 311 (git-server !) | ||
Content-Length: 183 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
|
r37171 | "actions": { (git-server !) | ||
"download": { (git-server !) | ||||
"expires_at": "$ISO_8601_DATE_TIME$" (git-server !) | ||||
"header": { (git-server !) | ||||
"Accept": "application/vnd.git-lfs" (git-server !) | ||||
} (git-server !) | ||||
"href": "http://localhost:$HGPORT/objects/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" (git-server !) | ||||
} (git-server !) | ||||
"error": { (hg-server !) | ||||
"code": 422 (hg-server !) | ||||
"message": "The object is corrupt" (hg-server !) | ||||
|
r37164 | } | ||
"oid": "d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" | ||||
|
r36944 | "size": 19 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r37171 | lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes) (git-server !) | ||
Status: 200 (git-server !) | ||||
Content-Length: 7 (git-server !) | ||||
Content-Type: text/plain; charset=utf-8 (git-server !) | ||||
Date: $HTTP_DATE$ (git-server !) | ||||
abort: corrupt remote lfs object: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (git-server !) | ||||
|
r37259 | abort: LFS server error for "c": Validation error! (hg-server !) | ||
|
r35490 | [255] | ||
|
r35492 | The corrupted blob is not added to the usercache or local store | ||
|
r35490 | |||
|
r35492 | $ test -f ../repo1/.hg/store/lfs/objects/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||
[1] | ||||
$ test -f `hg config lfs.usercache`/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||||
[1] | ||||
|
r37171 | #if git-server | ||
|
r35490 | $ cp blob $TESTTMP/lfs-content/d1/1e/1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||
|
r37171 | #else | ||
$ cp blob $TESTTMP/server/.hg/store/lfs/objects/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||||
#endif | ||||
|
r35490 | |||
Test a corrupted file upload | ||||
$ echo 'another lfs blob' > b | ||||
$ hg ci -m 'another blob' | ||||
$ echo 'damage' > .hg/store/lfs/objects/e6/59058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0 | ||||
|
r36943 | $ hg push --debug ../repo1 | ||
http auth: user foo, password *** | ||||
|
r35490 | pushing to ../repo1 | ||
|
r36943 | http auth: user foo, password *** | ||
|
r37582 | http auth: user foo, password *** | ||
|
r36943 | query 1; heads | ||
|
r35490 | searching for changes | ||
|
r36943 | all remote heads known locally | ||
listing keys for "phases" | ||||
checking for updated bookmarks | ||||
listing keys for "bookmarks" | ||||
listing keys for "bookmarks" | ||||
lfs: computing set of blobs to upload | ||||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 309 (git-server !) | ||
Content-Length: 350 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
"actions": { | ||||
"upload": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/e659058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "e659058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0" | ||||
|
r36944 | "size": 17 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r35490 | lfs: uploading e659058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0 (17 bytes) | ||
|
r35492 | abort: detected corrupt lfs object: e659058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0 | ||
(run hg verify) | ||||
|
r35490 | [255] | ||
|
r35943 | Archive will prefetch blobs in a group | ||
$ rm -rf .hg/store/lfs `hg config lfs.usercache` | ||||
|
r36943 | $ hg archive --debug -r 1 ../archive | ||
http auth: user foo, password *** | ||||
|
r37536 | http auth: user foo, password *** | ||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 905 (git-server !) | ||
Content-Length: 988 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" | ||||
|
r36944 | "size": 12 | ||
|
r37164 | } | ||
|
r36944 | { | ||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19" | ||||
|
r36944 | "size": 20 | ||
|
r37164 | } | ||
|
r36944 | { | ||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" | ||||
|
r36944 | "size": 19 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r35945 | lfs: need to transfer 3 objects (51 bytes) | ||
|
r35943 | lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes) | ||
|
r36944 | Status: 200 | ||
Content-Length: 12 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35943 | lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache | ||
lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b | ||||
lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes) | ||||
|
r36944 | Status: 200 | ||
Content-Length: 20 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35943 | lfs: adding 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 to the usercache | ||
lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 | ||||
lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes) | ||||
|
r36944 | Status: 200 | ||
Content-Length: 19 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35943 | lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache | ||
lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||||
|
r37783 | lfs: downloaded 3 files (51 bytes) | ||
|
r35943 | lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store | ||
lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store | ||||
lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store | ||||
lfs: found 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 in the local lfs store | ||||
$ find ../archive | sort | ||||
../archive | ||||
../archive/.hg_archival.txt | ||||
../archive/a | ||||
../archive/b | ||||
../archive/c | ||||
../archive/d | ||||
|
r35944 | Cat will prefetch blobs in a group | ||
$ rm -rf .hg/store/lfs `hg config lfs.usercache` | ||||
|
r37780 | $ hg cat --debug -r 1 a b c nonexistent | ||
|
r36943 | http auth: user foo, password *** | ||
|
r37536 | http auth: user foo, password *** | ||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 608 (git-server !) | ||
Content-Length: 670 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" | ||||
|
r36944 | "size": 12 | ||
|
r37164 | } | ||
|
r36944 | { | ||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" | ||||
|
r36944 | "size": 19 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r35945 | lfs: need to transfer 2 objects (31 bytes) | ||
|
r35944 | lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes) | ||
|
r36944 | Status: 200 | ||
Content-Length: 12 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35944 | lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache | ||
lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b | ||||
lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes) | ||||
|
r36944 | Status: 200 | ||
Content-Length: 19 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35944 | lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache | ||
lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||||
|
r37783 | lfs: downloaded 2 files (31 bytes) | ||
|
r35944 | lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store | ||
THIS-IS-LFS | ||||
lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store | ||||
THIS-IS-LFS | ||||
lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store | ||||
ANOTHER-LARGE-FILE | ||||
|
r37780 | nonexistent: no such file in rev dfca2c9e2ef2 | ||
|
r35944 | |||
|
r35942 | Revert will prefetch blobs in a group | ||
$ rm -rf .hg/store/lfs | ||||
$ rm -rf `hg config lfs.usercache` | ||||
$ rm * | ||||
|
r36943 | $ hg revert --all -r 1 --debug | ||
http auth: user foo, password *** | ||||
|
r37536 | http auth: user foo, password *** | ||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 905 (git-server !) | ||
Content-Length: 988 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b" | ||||
|
r36944 | "size": 12 | ||
|
r37164 | } | ||
|
r36944 | { | ||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19" | ||||
|
r36944 | "size": 20 | ||
|
r37164 | } | ||
|
r36944 | { | ||
"actions": { | ||||
"download": { | ||||
|
r37164 | "expires_at": "$ISO_8601_DATE_TIME$" | ||
|
r36944 | "header": { | ||
"Accept": "application/vnd.git-lfs" | ||||
|
r37164 | } | ||
|
r37171 | "href": "http://localhost:$HGPORT/*/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" (glob) | ||
|
r36944 | } | ||
|
r37164 | } | ||
"oid": "d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998" | ||||
|
r36944 | "size": 19 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r35945 | lfs: need to transfer 3 objects (51 bytes) | ||
|
r35942 | lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes) | ||
|
r36944 | Status: 200 | ||
Content-Length: 12 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35942 | lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache | ||
lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b | ||||
lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes) | ||||
|
r36944 | Status: 200 | ||
Content-Length: 20 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35942 | lfs: adding 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 to the usercache | ||
lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 | ||||
lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes) | ||||
|
r36944 | Status: 200 | ||
Content-Length: 19 | ||||
|
r37171 | Content-Type: text/plain; charset=utf-8 (git-server !) | ||
Content-Type: application/octet-stream (hg-server !) | ||||
|
r36944 | Date: $HTTP_DATE$ | ||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r35942 | lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache | ||
lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 | ||||
|
r37783 | lfs: downloaded 3 files (51 bytes) | ||
|
r39442 | reverting b | ||
|
r35942 | lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store | ||
|
r39442 | reverting c | ||
|
r35942 | lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store | ||
|
r39442 | reverting d | ||
|
r35942 | lfs: found 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 in the local lfs store | ||
|
r39442 | adding a | ||
|
r35942 | lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store | ||
|
r35097 | Check error message when the remote missed a blob: | ||
$ echo FFFFF > b | ||||
$ hg commit -m b -A b | ||||
$ echo FFFFF >> b | ||||
$ hg commit -m b b | ||||
$ rm -rf .hg/store/lfs | ||||
|
r35281 | $ rm -rf `hg config lfs.usercache` | ||
|
r36943 | $ hg update -C '.^' --debug | ||
http auth: user foo, password *** | ||||
resolving manifests | ||||
branchmerge: False, force: True, partial: False | ||||
ancestor: 62fdbaf221c6+, local: 62fdbaf221c6+, remote: ef0564edf47e | ||||
|
r37536 | http auth: user foo, password *** | ||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 308 (git-server !) | ||
Content-Length: 186 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
|
r37171 | "actions": { (git-server !) | ||
"upload": { (git-server !) | ||||
"expires_at": "$ISO_8601_DATE_TIME$" (git-server !) | ||||
"header": { (git-server !) | ||||
"Accept": "application/vnd.git-lfs" (git-server !) | ||||
} (git-server !) | ||||
"href": "http://localhost:$HGPORT/objects/8e6ea5f6c066b44a0efa43bcce86aea73f17e6e23f0663df0251e7524e140a13" (git-server !) | ||||
} (git-server !) | ||||
"error": { (hg-server !) | ||||
"code": 404 (hg-server !) | ||||
"message": "The object does not exist" (hg-server !) | ||||
|
r37164 | } | ||
"oid": "8e6ea5f6c066b44a0efa43bcce86aea73f17e6e23f0663df0251e7524e140a13" | ||||
|
r36944 | "size": 6 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r37259 | abort: LFS server error for "b": The object does not exist! | ||
|
r35097 | [255] | ||
Check error message when object does not exist: | ||||
|
r35684 | $ cd $TESTTMP | ||
|
r35097 | $ hg init test && cd test | ||
$ echo "[extensions]" >> .hg/hgrc | ||||
$ echo "lfs=" >> .hg/hgrc | ||||
$ echo "[lfs]" >> .hg/hgrc | ||||
$ echo "threshold=1" >> .hg/hgrc | ||||
$ echo a > a | ||||
$ hg add a | ||||
$ hg commit -m 'test' | ||||
$ echo aaaaa > a | ||||
$ hg commit -m 'largefile' | ||||
|
r37298 | $ hg debugdata a 1 # verify this is no the file content but includes "oid", the LFS "pointer". | ||
|
r35097 | version https://git-lfs.github.com/spec/v1 | ||
oid sha256:bdc26931acfb734b142a8d675f205becf27560dc461f501822de13274fe6fc8a | ||||
size 6 | ||||
x-is-binary 0 | ||||
$ cd .. | ||||
|
r35281 | $ rm -rf `hg config lfs.usercache` | ||
|
r35684 | |||
(Restart the server in a different location so it no longer has the content) | ||||
|
r39743 | $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS | ||
|
r37171 | |||
#if hg-server | ||||
$ cat $TESTTMP/access.log $TESTTMP/errors.log | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "PUT /.hg/lfs/objects/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b HTTP/1.1" 201 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "PUT /.hg/lfs/objects/37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 HTTP/1.1" 201 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "PUT /.hg/lfs/objects/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 HTTP/1.1" 201 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 HTTP/1.1" 200 - (glob) | ||||
$LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | ||||
#endif | ||||
|
r35684 | $ mkdir $TESTTMP/lfs-server2 | ||
$ cd $TESTTMP/lfs-server2 | ||||
|
r37171 | #if no-windows git-server | ||
|
r35684 | $ lfs-test-server &> lfs-server.log & | ||
$ echo $! >> $DAEMON_PIDS | ||||
|
r37171 | #endif | ||
#if windows git-server | ||||
|
r39743 | $ "$PYTHON" $TESTTMP/spawn.py >> $DAEMON_PIDS | ||
|
r35684 | #endif | ||
|
r37171 | #if hg-server | ||
$ hg init server2 | ||||
$ hg --config "lfs.usercache=$TESTTMP/servercache2" -R server2 serve -d \ | ||||
> -p $HGPORT --pid-file=hg.pid -A $TESTTMP/access.log -E $TESTTMP/errors.log | ||||
$ cat hg.pid >> $DAEMON_PIDS | ||||
#endif | ||||
|
r35684 | $ cd $TESTTMP | ||
|
r36943 | $ hg --debug clone test test2 | ||
http auth: user foo, password *** | ||||
linked 6 files | ||||
http auth: user foo, password *** | ||||
|
r35097 | updating to branch default | ||
|
r36943 | resolving manifests | ||
branchmerge: False, force: False, partial: False | ||||
ancestor: 000000000000, local: 000000000000+, remote: d2a338f184a8 | ||||
|
r37536 | http auth: user foo, password *** | ||
|
r36944 | Status: 200 | ||
|
r37171 | Content-Length: 308 (git-server !) | ||
Content-Length: 186 (hg-server !) | ||||
|
r36944 | Content-Type: application/vnd.git-lfs+json | ||
Date: $HTTP_DATE$ | ||||
|
r37171 | Server: testing stub value (hg-server !) | ||
|
r36944 | { | ||
"objects": [ | ||||
{ | ||||
|
r37171 | "actions": { (git-server !) | ||
"upload": { (git-server !) | ||||
"expires_at": "$ISO_8601_DATE_TIME$" (git-server !) | ||||
"header": { (git-server !) | ||||
"Accept": "application/vnd.git-lfs" (git-server !) | ||||
} (git-server !) | ||||
"href": "http://localhost:$HGPORT/objects/bdc26931acfb734b142a8d675f205becf27560dc461f501822de13274fe6fc8a" (git-server !) | ||||
} (git-server !) | ||||
"error": { (hg-server !) | ||||
"code": 404 (hg-server !) | ||||
"message": "The object does not exist" (hg-server !) | ||||
|
r37164 | } | ||
"oid": "bdc26931acfb734b142a8d675f205becf27560dc461f501822de13274fe6fc8a" | ||||
|
r36944 | "size": 6 | ||
} | ||||
] | ||||
|
r37171 | "transfer": "basic" (hg-server !) | ||
|
r36944 | } | ||
|
r37259 | abort: LFS server error for "a": The object does not exist! | ||
|
r35097 | [255] | ||
|
r35139 | |||
|
r39743 | $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS | ||