test-remotefilelog-sparse.t
109 lines
| 2.9 KiB
| text/troff
|
Tads3Lexer
/ tests / test-remotefilelog-sparse.t
Matt Harbison
|
r40758 | #require no-windows | ||
Augie Fackler
|
r40530 | $ . "$TESTDIR/remotefilelog-library.sh" | ||
Martin von Zweigbergk
|
r40605 | $ hg init master | ||
Augie Fackler
|
r40530 | $ 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] | ||||