Mercurial > hg
view tests/test-narrow-clone-non-narrow-server.t @ 37844:8fb9985382be
pycompat: export queue module instead of symbols in module (API)
Previously, pycompat and util re-exported individual symbols from the
queue module. This had the side-effect of forcing the loading of the
queue module whenever pycompat/util was imported.
These symbols aren't used very often. So importing the module to
get a handle on the symbols is wasteful.
This commit changes pycompat so it no longer exports the individual
symbols in the queue module. Instead, we make the imported module
a "public" symbol. We drop the individual symbol aliases from the
util module. All consumers are updated to use pycompat.queue.* instead.
This change makes 300 invocations of `hg log -r. -T '{rev}\n'` a little
faster:
before: 18.44s
after: 17.87s
Differential Revision: https://phab.mercurial-scm.org/D3441
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 05 May 2018 18:35:16 -0700 |
parents | afe624d78d43 |
children | c90514043eaa |
line wrap: on
line source
Test attempting a narrow clone against a server that doesn't support narrowhg. $ . "$TESTDIR/narrow-library.sh" $ hg init master $ cd master $ for x in `$TESTDIR/seq.py 10`; do > echo $x > "f$x" > hg add "f$x" > hg commit -m "Add $x" > done $ hg serve -a localhost -p $HGPORT1 --config extensions.narrow=! -d \ > --pid-file=hg.pid $ cat hg.pid >> "$DAEMON_PIDS" $ hg serve -a localhost -p $HGPORT2 -d --pid-file=hg.pid $ cat hg.pid >> "$DAEMON_PIDS" Verify that narrow is advertised in the bundle2 capabilities: $ cat >> unquote.py <<EOF > from __future__ import print_function > import sys > if sys.version[0] == '3': > import urllib.parse as up > unquote = up.unquote_plus > else: > import urllib > unquote = urllib.unquote_plus > print(unquote(list(sys.stdin)[1])) > EOF $ echo hello | hg -R . serve --stdio | \ > $PYTHON unquote.py | grep narrow narrow=v0 $ cd .. $ hg clone --narrow --include f1 http://localhost:$HGPORT1/ narrowclone requesting all changes abort: server doesn't support narrow clones [255] Make a narrow clone (via HGPORT2), then try to narrow and widen into it (from HGPORT1) to prove that narrowing is fine and widening fails gracefully: $ hg clone -r 0 --narrow --include f1 http://localhost:$HGPORT2/ narrowclone adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files new changesets * (glob) updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd narrowclone $ hg tracked --addexclude f2 http://localhost:$HGPORT1/ comparing with http://localhost:$HGPORT1/ searching for changes looking for local changes to affected paths $ hg tracked --addinclude f1 http://localhost:$HGPORT1/ comparing with http://localhost:$HGPORT1/ searching for changes no changes found abort: server doesn't support narrow clones [255]