tests: add tests for narrow clone when both sparse and narrow are enabled
authorPulkit Goyal <pulkit@yandex-team.ru>
Mon, 24 Dec 2018 15:01:47 +0300
changeset 41147 eb172f9c208c
parent 41145 963462786f6e
child 41148 8eaf693b1409
tests: add tests for narrow clone when both sparse and narrow are enabled This patch adds tests for doing a narrow clone when client has both sparse and narrow enabled. As shown by this patch, we can see that the narrow clone has sparse enabled which we does not want here. Upcoming patch will fix this. Also while writing tests, I realized we don't have a flag to list the current sparse profile. Differential Revision: https://phab.mercurial-scm.org/D5478
tests/test-narrow-sparse.t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-narrow-sparse.t	Mon Dec 24 15:01:47 2018 +0300
@@ -0,0 +1,69 @@
+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 not have sparse enabled
+  $ cat .hg/sparse
+  [include]
+  inside/f
+
+  $ cat .hg/requires
+  dotencode
+  exp-sparse
+  fncache
+  generaldelta
+  narrowhg-experimental
+  revlogv1
+  sparserevlog
+  store
+  treemanifest (tree !)