Mercurial > hg
view tests/test-narrow-clone-stream.t @ 47877:2174f54aab18
store: return just one filename in walk functions
Various walk functions return `(revlog_type, decoded, encoded)` where
decoded could be None. But no-one cares about `encoded` and expects
`unencoded` to be present, except verify (because this can only happen
with old repo formats).
Simplify all this by either failing outright if a decoding a filename
fails (instead of almost certainly failing with a type error due to
treating None as a bytes), or skipping the filename but providing in
an out argument for hg verify.
Differential Revision: https://phab.mercurial-scm.org/D11248
author | Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> |
---|---|
date | Mon, 02 Aug 2021 08:05:13 -0400 |
parents | 40b51c28b242 |
children | bf11ff22a9af |
line wrap: on
line source
#testcases tree flat-fncache flat-nofncache Tests narrow stream clones $ . "$TESTDIR/narrow-library.sh" #if tree $ cat << EOF >> $HGRCPATH > [experimental] > treemanifest = 1 > EOF #endif #if flat-nofncache $ cat << EOF >> $HGRCPATH > [format] > usefncache = 0 > EOF #endif Server setup $ hg init master $ cd master $ mkdir dir $ mkdir dir/src $ cd dir/src $ for x in `$TESTDIR/seq.py 20`; do echo $x > "F$x"; hg add "F$x"; hg commit -m "Commit src $x"; done $ cd .. $ mkdir tests $ cd tests $ for x in `$TESTDIR/seq.py 20`; do echo $x > "F$x"; hg add "F$x"; hg commit -m "Commit src $x"; done $ cd ../../.. Trying to stream clone when the server does not support it $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/F10" --stream streaming all changes remote: abort: server does not support narrow stream clones abort: pull failed on remote [100] Enable stream clone on the server $ echo "[experimental]" >> master/.hg/hgrc $ echo "server.stream-narrow-clones=True" >> master/.hg/hgrc Cloning a specific file when stream clone is supported $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/F10" --stream streaming all changes * files to transfer, * KB of data (glob) transferred * KB in * seconds (* */sec) (glob) $ cd narrow $ ls -A .hg $ hg tracked I path:dir/src/F10 Making sure we have the correct set of requirements $ cat .hg/requires dotencode (tree !) dotencode (flat-fncache !) exp-dirstate-v2 (dirstate-v2 !) fncache (tree !) fncache (flat-fncache !) generaldelta narrowhg-experimental persistent-nodemap (rust !) revlog-compression-zstd (zstd !) revlogv1 sparserevlog store treemanifest (tree !) Making sure store has the required files $ ls .hg/store/ 00changelog.i 00manifest.i data fncache (tree !) fncache (flat-fncache !) meta (tree !) narrowspec undo undo.backupfiles undo.narrowspec undo.phaseroots Checking that repository has all the required data and not broken $ hg verify checking changesets checking manifests checking directory manifests (tree !) crosschecking files in changesets and manifests checking files checked 40 changesets with 1 changes to 1 files