test-narrow-commit.t
89 lines
| 2.1 KiB
| text/troff
|
Tads3Lexer
/ tests / test-narrow-commit.t
Augie Fackler
|
r36101 | #testcases flat tree | ||
Augie Fackler
|
r36096 | $ . "$TESTDIR/narrow-library.sh" | ||
Augie Fackler
|
r36101 | #if tree | ||
$ cat << EOF >> $HGRCPATH | ||||
> [experimental] | ||||
> treemanifest = 1 | ||||
> EOF | ||||
#endif | ||||
Augie Fackler
|
r36096 | 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 | ||||
Augie Fackler
|
r36101 | outside/f1 (flat !) | ||
outside/ (tree !) | ||||
Augie Fackler
|
r36096 | 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 | ||||