Mercurial > hg-stable
comparison tests/test-lfs-serve-access.t @ 39474:a913d2892e17
lfs: ensure the blob is linked to the remote store on skipped uploads
I noticed a "missing" blob when pushing two repositories with common blobs to a
fresh server, and then running `hg verify` as a user different from the one
running the web server. When pushing the second repo, several of the blobs
already existed in the user cache, so the server indicated to the client that it
doesn't need to upload the blobs. That's good enough for the web server process
to serve up in the future. But a different user has a different cache by
default, so verify complains that `lfs.url` needs to be set, because it wants to
fetch the missing blobs.
Aside from that corner case, it's better to keep all of the blobs in the repo
whenever possible. Especially since the largefiles wiki says the user cache can
be deleted at any time to reclaim disk space- users switching over may have the
same expectations.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 06 Sep 2018 00:51:21 -0400 |
parents | ead71b15efd5 |
children | 5abc47d4ca6b |
comparison
equal
deleted
inserted
replaced
39473:8d858fbf2759 | 39474:a913d2892e17 |
---|---|
148 $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) | 148 $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) |
149 $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) | 149 $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) |
150 $LOCALIP - - [$LOGDATE$] "POST /subdir/mount/point/.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) | 150 $LOCALIP - - [$LOGDATE$] "POST /subdir/mount/point/.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob) |
151 $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point/.hg/lfs/objects/f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e HTTP/1.1" 200 - (glob) | 151 $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point/.hg/lfs/objects/f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e HTTP/1.1" 200 - (glob) |
152 | 152 |
153 Blobs that already exist in the usercache are linked into the repo store, even | |
154 though the client doesn't send the blob. | |
155 | |
156 $ hg init server2 | |
157 $ hg --config "lfs.usercache=$TESTTMP/servercache" -R server2 serve -d \ | |
158 > -p $HGPORT --pid-file=hg.pid \ | |
159 > -A $TESTTMP/access.log -E $TESTTMP/errors.log | |
160 $ cat hg.pid >> $DAEMON_PIDS | |
161 | |
162 $ hg --config "lfs.usercache=$TESTTMP/servercache" -R cloned2 --debug \ | |
163 > push http://localhost:$HGPORT | grep '^[{} ]' | |
164 { | |
165 "objects": [ | |
166 { | |
167 "oid": "f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e" | |
168 "size": 20 | |
169 } | |
170 ] | |
171 "transfer": "basic" | |
172 } | |
173 $ find server2/.hg/store/lfs/objects | sort | |
174 server2/.hg/store/lfs/objects | |
175 server2/.hg/store/lfs/objects/f0 | |
176 server2/.hg/store/lfs/objects/f0/3217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e | |
177 $ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS | |
178 $ cat $TESTTMP/errors.log | |
179 | |
153 $ cat >> $TESTTMP/lfsstoreerror.py <<EOF | 180 $ cat >> $TESTTMP/lfsstoreerror.py <<EOF |
154 > import errno | 181 > import errno |
155 > from hgext.lfs import blobstore | 182 > from hgext.lfs import blobstore |
156 > | 183 > |
157 > _numverifies = 0 | 184 > _numverifies = 0 |