tests/test-narrow-sparse.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 18 Aug 2021 21:28:36 +0200
branchstable
changeset 47847 cce9e7d2fb92
parent 47314 e4ccc341e65b
child 48295 bf11ff22a9af
permissions -rw-r--r--
pyoxidizer: skip for ZeroConf related test for now These test are failing for obscure reason. They are fairly minor and Since they are the only thing between us and enabling pyoxidizer testing in the CI by default, we just shallow the bad output for now. Differential Revision: https://phab.mercurial-scm.org/D11305

Testing interaction of sparse and narrow when both are enabled on the client
side and we do a non-ellipsis clone

#testcases tree flat
  $ . "$TESTDIR/narrow-library.sh"
  $ cat << EOF >> $HGRCPATH
  > [extensions]
  > sparse =
  > EOF

#if tree
  $ cat << EOF >> $HGRCPATH
  > [experimental]
  > treemanifest = 1
  > EOF
#endif

  $ hg init master
  $ cd master

  $ mkdir inside
  $ echo 'inside' > inside/f
  $ hg add inside/f
  $ hg commit -m 'add inside'

  $ mkdir widest
  $ echo 'widest' > widest/f
  $ hg add widest/f
  $ hg commit -m 'add widest'

  $ mkdir outside
  $ echo 'outside' > outside/f
  $ hg add outside/f
  $ hg commit -m 'add outside'

  $ cd ..

narrow clone the inside file

  $ hg clone --narrow ssh://user@dummy/master narrow --include inside/f
  requesting all changes
  adding changesets
  adding manifests
  adding file changes
  added 3 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 narrow
  $ hg tracked
  I path:inside/f
  $ hg files
  inside/f

XXX: we should have a flag in `hg debugsparse` to list the sparse profile
  $ test -f .hg/sparse
  [1]

  $ cat .hg/requires
  dotencode
  exp-dirstate-v2 (dirstate-v2 !)
  fncache
  generaldelta
  narrowhg-experimental
  persistent-nodemap (rust !)
  revlog-compression-zstd (zstd !)
  revlogv1
  sparserevlog
  store
  treemanifest (tree !)

  $ hg debugrebuilddirstate

We only make the following assertions for the flat test case since in the
treemanifest test case debugsparse fails with "path ends in directory
separator: outside/" which seems like a bug unrelated to the regression this is
testing for.

#if flat
widening with both sparse and narrow is possible

  $ cat >> .hg/hgrc <<EOF
  > [extensions]
  > sparse = 
  > narrow = 
  > EOF

  $ hg debugsparse -X outside/f -X widest/f
  $ hg tracked -q --addinclude outside/f
  $ find . -name .hg -prune -o -type f -print | sort
  ./inside/f

  $ hg debugsparse -d outside/f
  $ find . -name .hg -prune -o -type f -print | sort
  ./inside/f
  ./outside/f
#endif