Mercurial > hg
view tests/test-remotefilelog-sparse.t @ 40930:fcdff048a8e5
py3: teach run-tests.py to handle exe with spaces when --local isn't specified
This was the reason that no amount of quoting worked in test-hghave.t.
`os.popen()` needed to be swapped out because while the added quoting around
line 3124 worked on py3, it failed on py2. See 38d51371792b. The problem with
`os.system()` was wrongly splitting the command on the space in 'Program Files',
regardless of quoting. It looks like there are a few other instances of
`os.system()` in core code, so presumably those should be replaced?
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 13 Dec 2018 00:18:47 -0500 |
parents | 0800d9e6e216 |
children | d69bc8ffbe6f |
line wrap: on
line source
#require no-windows $ . "$TESTDIR/remotefilelog-library.sh" $ hg init master $ cd master $ cat >> .hg/hgrc <<EOF > [remotefilelog] > server=True > EOF $ echo x > x $ echo z > z $ hg commit -qAm x1 $ echo x2 > x $ echo z2 > z $ hg commit -qAm x2 $ hg bookmark foo $ cd .. # prefetch a revision w/ a sparse checkout $ hgcloneshallow ssh://user@dummy/master shallow --noupdate streaming all changes 2 files to transfer, 527 bytes of data transferred 527 bytes in 0.* seconds (*/sec) (glob) searching for changes no changes found $ cd shallow $ printf "[extensions]\nsparse=\n" >> .hg/hgrc $ hg debugsparse -I x $ hg prefetch -r 0 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) $ hg cat -r 0 x x $ hg debugsparse -I z $ hg prefetch -r 0 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) $ hg cat -r 0 z z # prefetch sparse only on pull when configured $ printf "[remotefilelog]\npullprefetch=bookmark()\n" >> .hg/hgrc $ hg strip tip saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/876b1317060d-b2e91d8d-backup.hg (glob) $ hg debugsparse --delete z $ clearcache $ hg pull pulling from ssh://user@dummy/master searching for changes adding changesets adding manifests adding file changes added 1 changesets with 0 changes to 0 files updating bookmark foo new changesets 876b1317060d (run 'hg update' to get a working copy) prefetching file contents 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) # Dont consider filtered files when doing copy tracing ## Push an unrelated commit $ cd ../ $ hgcloneshallow ssh://user@dummy/master shallow2 streaming all changes 2 files to transfer, 527 bytes of data transferred 527 bytes in 0.* seconds (*) (glob) searching for changes no changes found updating to branch default 2 files updated, 0 files merged, 0 files removed, 0 files unresolved 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) $ cd shallow2 $ printf "[extensions]\nsparse=\n" >> .hg/hgrc $ hg up -q 0 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) $ touch a $ hg ci -Aqm a $ hg push -q -f ## Pull the unrelated commit and rebase onto it - verify unrelated file was not pulled $ cd ../shallow $ hg up -q 1 $ hg pull -q $ hg debugsparse -I z $ clearcache $ hg prefetch -r '. + .^' -I x -I z 4 files fetched over 1 fetches - (4 misses, 0.00% hit ratio) over * (glob) Originally this was testing that the rebase doesn't fetch pointless blobs. Right now it fails because core's sparse can't load a spec from the working directory. Presumably there's a fix, but I'm not sure what it is. $ hg rebase -d 2 --keep rebasing 1:876b1317060d "x2" (foo) transaction abort! rollback completed abort: cannot parse sparse patterns from working directory [255]