view tests/test-narrow-acl.t @ 51401:8f2ea3fa50fd

phases: explicitly filter stripped revision at strip time Explicit is better than implicit. The current logic is bit subtle and fragile. It also get in the way of using something else than node-id as internal storage. We replace it with a more explicit filtering while striping.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 20 Feb 2024 14:21:18 +0100
parents 6b10151b9621
children
line wrap: on
line source

Make a narrow clone then archive it
  $ . "$TESTDIR/narrow-library.sh"

  $ hg init master
  $ cd master

  $ for x in `$TESTDIR/seq.py 3`; do
  >   echo $x > "f$x"
  >   hg add "f$x"
  >   hg commit -m "Add $x"
  > done
  $ cat >> .hg/hgrc << EOF
  > [narrowacl]
  > default.includes=f1 f2
  > EOF
  $ hg serve -a localhost -p $HGPORT1 -d --pid-file=hg.pid
  $ cat hg.pid >> "$DAEMON_PIDS"

  $ cd ..
  $ hg clone http://localhost:$HGPORT1 narrowclone1
  requesting all changes
  adding changesets
  adding manifests
  adding file changes
  added 3 changesets with 2 changes to 2 files
  new changesets * (glob)
  updating to branch default
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved

The clone directory should only contain f1 and f2
  $ ls -A -1 narrowclone1 | sort
  .hg
  f1
  f2

Requirements should contain narrowhg
  $ hg debugrequires -R narrowclone1 | grep narrowhg
  narrowhg-experimental

NarrowHG should track f1 and f2
  $ hg -R narrowclone1 tracked
  I path:f1
  I path:f2

Narrow should not be able to widen to include f3
  $ hg -R narrowclone1 tracked --addinclude f3
  comparing with http://localhost:$HGPORT1/
  searching for changes
  abort: The following includes are not accessible for test: ['path:f3']
  [255]
  $ ls -A -1 narrowclone1 | sort
  .hg
  f1
  f2
  $ hg -R narrowclone1 tracked
  I path:f1
  I path:f2

Narrow should allow widen to include f2
  $ hg -R narrowclone1 tracked --removeinclude f2 > /dev/null
  $ hg -R narrowclone1 tracked
  I path:f1
  $ ls -A -1 narrowclone1 | sort
  .hg
  f1
  $ hg -R narrowclone1 tracked --addinclude f2
  comparing with http://localhost:$HGPORT1/
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 0 changesets with 1 changes to 1 files
  $ hg -R narrowclone1 tracked
  I path:f1
  I path:f2
  $ ls -A -1 narrowclone1 | sort
  .hg
  f1
  f2