templates: add filter to reverse list
The filter supports only lists because for lists, it’s straightforward to
implement. Reversing text doesn’t seem very useful and is hard to implement.
Reversing the bytes would break multi-bytes encodings. Reversing the code
points would break characters consisting of multiple code points. Reversing
graphemes is non-trivial without using a library not included in the standard
library.
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