Mercurial > hg
view tests/test-url-download.t @ 39527:9db856446298
sparse: add local files to temporaryfiles if they exist out of sparse
We get the f1 from args if it's merge and check that whether that exists in
sparse checkout or not. If that does not, we add that for merging.
The error comes from very low-level where we try to read data of a
working-filectx which does not exists in the working directory. It will be
extremely ugly to plug in logic to update sparse copy with new file at such a
low level.
We already have logic related to updating the checkout with required files in
calculateupdates() and let's handle this case there only. calculateupdates()
call sparse.filterupdatesactions() and the logic is added into the latter
function.
To get the exact traceback, this patch can be backed out and
test-sparse-merges.t can be run with ui.traceback=True.
Differential Revision: https://phab.mercurial-scm.org/D4341
author | Pulkit Goyal <pulkit@yandex-team.ru> |
---|---|
date | Tue, 21 Aug 2018 16:11:17 +0300 |
parents | 05d415790761 |
children | 8214c71589f6 |
line wrap: on
line source
#require serve $ hg init server $ hg serve -R server -p $HGPORT -d --pid-file=hg1.pid -E ../error.log $ cat hg1.pid >> $DAEMON_PIDS Check basic fetching $ hg debugdownload "http://localhost:$HGPORT/?cmd=lookup&key=tip" 1 0000000000000000000000000000000000000000 $ hg debugdownload -o null.txt "http://localhost:$HGPORT/?cmd=lookup&key=null" $ cat null.txt 1 0000000000000000000000000000000000000000 Check the request is made from the usual Mercurial logic (rev details, give different content if the request has a Mercurial user agent) $ get-with-headers.py --headeronly "localhost:$HGPORT" "rev/tip" content-type 200 Script output follows content-type: text/html; charset=ascii $ hg debugdownload "http://localhost:$HGPORT/rev/tip" # HG changeset patch # User # Date 0 0 # Node ID 0000000000000000000000000000000000000000 Check other kind of compatible url $ hg debugdownload ./null.txt 1 0000000000000000000000000000000000000000 Test largefile URL ------------------ $ cat << EOF >> $HGRCPATH > [extensions] > largefiles= > EOF $ killdaemons.py $ rm -f error.log hg1.pid $ hg serve -R server -p $HGPORT -d --pid-file=hg1.pid -E error.log $ cat hg1.pid >> $DAEMON_PIDS $ hg -R server debuglfput null.txt a57b57b39ee4dc3da1e03526596007f480ecdbe8 $ hg --traceback debugdownload "largefile://a57b57b39ee4dc3da1e03526596007f480ecdbe8" --config paths.default=http://localhost:$HGPORT/ 1 0000000000000000000000000000000000000000 from within a repository $ hg clone http://localhost:$HGPORT/ client no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd client $ hg path default = http://localhost:$HGPORT/ $ hg debugdownload "largefile://a57b57b39ee4dc3da1e03526596007f480ecdbe8" 1 0000000000000000000000000000000000000000 $ cd ..