##// END OF EJS Templates
narrow: assume addflagprocessor will always exist on revlog module...
narrow: assume addflagprocessor will always exist on revlog module Differential Revision: https://phab.mercurial-scm.org/D1978

File last commit:

r36096:a2a6e724 default
r36100:9772ef9f default
Show More
test-narrow-commit.t
79 lines | 1.9 KiB | text/troff | Tads3Lexer
/ tests / test-narrow-commit.t
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 $ . "$TESTDIR/narrow-library.sh"
create full repo
$ hg init master
$ cd master
$ mkdir inside
$ echo inside > inside/f1
$ mkdir outside
$ echo outside > outside/f1
$ hg ci -Aqm 'initial'
$ echo modified > inside/f1
$ hg ci -qm 'modify inside'
$ echo modified > outside/f1
$ hg ci -qm 'modify outside'
$ cd ..
$ hg clone --narrow ssh://user@dummy/master narrow --include inside
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 2 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 update -q 0
Can not modify dirstate outside
$ mkdir outside
$ touch outside/f1
$ hg debugwalk -I 'relglob:f1'
matcher: <includematcher includes='(?:(?:|.*/)f1(?:/|$))'>
f inside/f1 inside/f1
$ hg add outside/f1
abort: cannot track 'outside/f1' - it is outside the narrow clone
[255]
$ touch outside/f3
$ hg add outside/f3
abort: cannot track 'outside/f3' - it is outside the narrow clone
[255]
$ rm -r outside
Can modify dirstate inside
$ echo modified > inside/f1
$ touch inside/f3
$ hg add inside/f3
$ hg status
M inside/f1
A inside/f3
$ hg revert -qC .
$ rm inside/f3
Can commit changes inside. Leaves outside unchanged.
$ hg update -q 'desc("initial")'
$ echo modified2 > inside/f1
$ hg commit -m 'modify inside/f1'
created new head
$ hg files -r .
inside/f1
outside/f1
Some filesystems (notably FAT/exFAT only store timestamps with 2
seconds of precision, so by sleeping for 3 seconds, we can ensure that
the timestamps of files stored by dirstate will appear older than the
dirstate file, and therefore we'll be able to get stable output from
debugdirstate. If we don't do this, the test can be slightly flaky.
$ sleep 3
$ hg status
$ hg debugdirstate --nodates
n 644 10 set inside/f1