sapling/tests/test-sparse.t

172 lines
2.8 KiB
Perl
Raw Normal View History

test sparse
$ hg init myrepo
$ cd myrepo
$ cat > .hg/hgrc <<EOF
> [extensions]
> sparse=$(dirname $TESTDIR)/sparse.py
> strip=
> EOF
$ echo a > show
$ echo x > hide
$ hg ci -Aqm 'initial'
$ echo b > show
$ echo y > hide
$ echo aa > show2
$ echo xx > hide2
$ hg ci -Aqm 'two'
Verify basic --include
$ hg up -q 0
$ hg sparse --include 'hide'
$ ls
hide
Verify commiting while sparse includes other files
$ echo z > hide
$ hg ci -Aqm 'edit hide'
$ ls
hide
$ hg manifest
hide
show
Verify --reset brings files back
$ hg sparse --reset
$ ls
hide
show
$ cat hide
z
$ cat show
a
Verify 'hg sparse' default output
$ hg up -q null
$ hg sparse --include 'show*'
$ hg sparse
[include]
show*
[exclude]
Verify update only writes included files
$ hg up -q 0
$ ls
show
$ hg up -q 1
$ ls
show
show2
Verify status only shows included files
$ touch hide
$ touch hide3
$ echo c > show
$ hg status
M show
Adding an excluded file should fail
$ hg add hide3
abort: cannot add 'hide3' - it is outside the sparse checkout
[255]
Verify deleting sparseness while a file has changes fails
$ hg sparse --delete 'show*'
pending changes to 'hide'
abort: cannot change sparseness due to pending changes (delete the files or use --force to bring them back dirty)
[255]
Verify deleting sparseness with --force brings back files
$ hg sparse --delete -f 'show*'
pending changes to 'hide'
$ ls
hide
hide2
hide3
show
show2
$ hg st
M hide
M show
? hide3
Verify editting sparseness fails if pending changes
$ hg sparse --include 'show*'
pending changes to 'hide'
abort: could not update sparseness due to pending changes
[255]
Verify adding sparseness hides files
$ hg sparse --exclude -f 'hide*'
pending changes to 'hide'
$ ls
hide
hide3
show
show2
$ hg st
M show
$ hg up -qC .
$ hg purge --all --config extensions.purge=
$ ls
show
show2
Verify rebase fails if moving excluded files
$ hg rebase -d 1 -r 2 --config extensions.rebase=
abort: cannot merge because hide is outside the sparse checkout
[255]
$ hg rebase --abort --config extensions.rebase=
rebase aborted
Verify merge fails if merging excluded files
$ hg up -q 1
$ hg merge -r 2
abort: cannot merge because hide is outside the sparse checkout
[255]
$ hg up -qC .
Verify strip -k resets dirstate correctly
$ hg status
$ hg sparse
[include]
[exclude]
hide*
$ hg log -r . -T '{rev}\n' --stat
1
hide | 2 +-
hide2 | 1 +
show | 2 +-
show2 | 1 +
4 files changed, 4 insertions(+), 2 deletions(-)
$ hg strip -r . -k
saved backup bundle to $TESTTMP/myrepo/.hg/strip-backup/39278f7c08a9-backup.hg
$ hg status
M show
? show2