Mercurial > public > mercurial-scm > hg-stable
view tests/test-remotefilelog-sparse.t @ 42903:d7304434390f
changegroup: move message about added changes to transaction summary
Before that, applying multiple changegroups in the same transaction issued the
message multiple time. This result in a confusing output:
adding changesets
adding manifests
adding file changes
added 32768 changesets with 60829 changes to 2668 files
adding changesets
adding manifests
adding file changes
added 8192 changesets with 16885 changes to 1553 files
adding changesets
adding manifests
adding file changes
added 1020 changesets with 1799 changes to 536 files
adding changesets
adding manifests
...
Instead, we now only issue the message once at the end of the transaction,
summing up all added changesets, changes and files. The line is identical, but
happens sightly later in the output.
There are other suboptimal behavior around issue multiple changegroup (eg:
progress bar). We'll cover them later.
This impact of lot of test as one would expect, but a two pass check show they
are just the order change we expected.
To deal with "under the hood" bundle application by internal code, we had to
take a slightly hacky move. We could clean that up with a more official way to
enter "under the hood" section, however I want to keep this series simple to get
it landed. This kind of change have a very high bit rot rate since it impact a
lot of test output.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sun, 08 Sep 2019 09:42:53 +0200 |
parents | d69bc8ffbe6f |
children | f90a5c211251 |
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 updating bookmark foo added 1 changesets with 0 changes to 0 files 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) $ hg rebase -d 2 --keep rebasing 1:876b1317060d "x2" (foo)