view tests/test-narrow-clone-non-narrow-server.t @ 39794:4f44f747f094

hgweb: use scmutil.binnode() to translate None to wdir hash (issue5988) I left some of ctx.node() calls unchanged as they seemed unlikely to be workingctx, or passed to diff functions where None is the default value. Note that a None revision can also cause a similar problem, but I'm not sure if we can simply bulk-replace ctx.rev() with scmutil.intrev(ctx) as there's large hole between tip revision and wdir revision. If such pair were passed in to xrange() for example, we would waste CPU time.
author Yuya Nishihara <yuya@tcha.org>
date Sun, 23 Sep 2018 16:11:01 +0900
parents 7d9b1b50cad5
children 06e75fbf9d6b
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
  narrow=v0
  exp-narrow-1

  $ 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]