Mercurial > hg
view tests/test-pull.t @ 35280:8e72f9152c4d
lfs: introduce a user level cache for lfs files
This is the same mechanism in place for largefiles, and solves several problems
working with multiple local repositories. The existing largefiles method is
reused in place, because I suspect that there are other functions that can be
shared. If we wait a bit to identify more before `hg cp lfutil.py ...`, the
history will be easier to trace.
The push between repo14 and repo15 in test-lfs.t arguably shouldn't be uploading
any files with a local push. Maybe we can revisit that when `hg push` without
'lfs.url' can upload files to the push destination. Then it would be consistent
for blobs in a local push to be linked to the local destination's cache.
The cache property is added to run-tests.py, the same as the largefiles
property, so that test generated files don't pollute the real location. Having
files available locally broke a couple existing lfs-test-server tests, so the
cache is cleared in a few places to force file download.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 06 Dec 2017 22:56:15 -0500 |
parents | eb586ed5d8ce |
children | 1ee1a42bfdae |
line wrap: on
line source
#require serve $ hg init test $ cd test $ echo foo>foo $ hg addremove adding foo $ hg commit -m 1 $ hg verify checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 1 changesets, 1 total revisions $ hg serve -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid >> $DAEMON_PIDS $ cd .. $ hg clone --pull http://foo:bar@localhost:$HGPORT/ copy requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files new changesets 340e38bdcde4 updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd copy $ hg verify checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 1 changesets, 1 total revisions $ hg co 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat foo foo $ hg manifest --debug 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 foo $ hg pull pulling from http://foo@localhost:$HGPORT/ searching for changes no changes found $ hg rollback --dry-run --verbose repository tip rolled back to revision -1 (undo pull: http://foo:***@localhost:$HGPORT/) Test pull of non-existing 20 character revision specification, making sure plain ascii identifiers not are encoded like a node: $ hg pull -r 'xxxxxxxxxxxxxxxxxxxy' pulling from http://foo@localhost:$HGPORT/ abort: unknown revision 'xxxxxxxxxxxxxxxxxxxy'! [255] $ hg pull -r 'xxxxxxxxxxxxxxxxxx y' pulling from http://foo@localhost:$HGPORT/ abort: unknown revision '7878787878787878787878787878787878782079'! [255] Issue622: hg init && hg pull -u URL doesn't checkout default branch $ cd .. $ hg init empty $ cd empty $ hg pull -u ../test pulling from ../test requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files new changesets 340e38bdcde4 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Test 'file:' uri handling: $ hg pull -q file://../test-does-not-exist abort: file:// URLs can only refer to localhost [255] $ hg pull -q file://../test abort: file:// URLs can only refer to localhost [255] MSYS changes 'file:' into 'file;' #if no-msys $ hg pull -q file:../test # no-msys #endif It's tricky to make file:// URLs working on every platform with regular shell commands. $ URL=`$PYTHON -c "import os; print 'file://foobar' + ('/' + os.getcwd().replace(os.sep, '/')).replace('//', '/') + '/../test'"` $ hg pull -q "$URL" abort: file:// URLs can only refer to localhost [255] $ URL=`$PYTHON -c "import os; print 'file://localhost' + ('/' + os.getcwd().replace(os.sep, '/')).replace('//', '/') + '/../test'"` $ hg pull -q "$URL" SEC: check for unsafe ssh url $ cat >> $HGRCPATH << EOF > [ui] > ssh = sh -c "read l; read l; read l" > EOF $ hg pull 'ssh://-oProxyCommand=touch${IFS}owned/path' pulling from ssh://-oProxyCommand%3Dtouch%24%7BIFS%7Downed/path abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' [255] $ hg pull 'ssh://%2DoProxyCommand=touch${IFS}owned/path' pulling from ssh://-oProxyCommand%3Dtouch%24%7BIFS%7Downed/path abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' [255] $ hg pull 'ssh://fakehost|touch${IFS}owned/path' pulling from ssh://fakehost%7Ctouch%24%7BIFS%7Downed/path abort: no suitable response from remote hg! [255] $ hg pull 'ssh://fakehost%7Ctouch%20owned/path' pulling from ssh://fakehost%7Ctouch%20owned/path abort: no suitable response from remote hg! [255] $ [ ! -f owned ] || echo 'you got owned' $ cd ..