Mercurial > hg
view tests/test-narrow-clone-non-narrow-server.t @ 45565:c1d0f83d62c4
log: introduce struct that carries log traversal options
I tried to refactor logcmdutil.getrevs() without using an options struct,
but none of these attempts didn't work out. Since every stage of getrevs()
needs various log command options (e.g. both matcher and revset query need
file patterns), it isn't possible to cleanly split getrevs() into a command
layer and a core logic.
So, this patch introduces a named struct to carry command options in slightly
abstracted way, which will be later used by "hg grep" and "hg churn". More
fields will be added to the walkopt struct.
Type hints aren't verified. I couldn't figure out how to teach pytype to
load its own attr type stubs in place of our .thirdparty.attr. Conditional
import didn't work. s/^from \.thirdparty // is the only way I found pytype
could parse the @attr.ib decorator.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 12 Sep 2020 21:06:16 +0900 |
parents | e3792741e3fb |
children | 20eba5cef2e0 |
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 | tr ' ' '\n' | grep narrow exp-narrow-1 $ cd .. $ hg clone --narrow --include f1 http://localhost:$HGPORT1/ narrowclone requesting all changes abort: server does not 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/ nothing to widen or narrow $ hg tracked --addinclude f9 http://localhost:$HGPORT1/ comparing with http://localhost:$HGPORT1/ abort: server does not support narrow clones [255]