test-sparse-import.t
181 lines
| 3.6 KiB
| text/troff
|
Tads3Lexer
/ tests / test-sparse-import.t
|
r33289 | test sparse | ||
$ hg init myrepo | ||||
$ cd myrepo | ||||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> sparse= | ||||
> purge= | ||||
> strip= | ||||
> rebase= | ||||
> EOF | ||||
$ echo a > index.html | ||||
$ echo x > data.py | ||||
$ echo z > readme.txt | ||||
$ cat > base.sparse <<EOF | ||||
> [include] | ||||
> *.sparse | ||||
> EOF | ||||
$ hg ci -Aqm 'initial' | ||||
$ cat > webpage.sparse <<EOF | ||||
> %include base.sparse | ||||
> [include] | ||||
> *.html | ||||
> EOF | ||||
$ hg ci -Aqm 'initial' | ||||
Import a rules file against a 'blank' sparse profile | ||||
$ cat > $TESTTMP/rules_to_import <<EOF | ||||
> [include] | ||||
> *.py | ||||
> EOF | ||||
|
r33293 | $ hg debugsparse --import-rules $TESTTMP/rules_to_import | ||
|
r33289 | $ ls | ||
data.py | ||||
|
r33293 | $ hg debugsparse --reset | ||
|
r33289 | $ rm .hg/sparse | ||
$ cat > $TESTTMP/rules_to_import <<EOF | ||||
> %include base.sparse | ||||
> [include] | ||||
> *.py | ||||
> EOF | ||||
|
r33293 | $ hg debugsparse --import-rules $TESTTMP/rules_to_import | ||
|
r33289 | $ ls | ||
base.sparse | ||||
data.py | ||||
webpage.sparse | ||||
|
r33293 | $ hg debugsparse --reset | ||
|
r33289 | $ rm .hg/sparse | ||
Start against an existing profile; rules *already active* should be ignored | ||||
|
r33293 | $ hg debugsparse --enable-profile webpage.sparse | ||
$ hg debugsparse --include *.py | ||||
|
r33289 | $ cat > $TESTTMP/rules_to_import <<EOF | ||
> %include base.sparse | ||||
> [include] | ||||
> *.html | ||||
> *.txt | ||||
> [exclude] | ||||
> *.py | ||||
> EOF | ||||
|
r33293 | $ hg debugsparse --import-rules $TESTTMP/rules_to_import | ||
|
r33289 | $ ls | ||
base.sparse | ||||
index.html | ||||
readme.txt | ||||
webpage.sparse | ||||
$ cat .hg/sparse | ||||
%include webpage.sparse | ||||
[include] | ||||
*.py | ||||
*.txt | ||||
[exclude] | ||||
*.py | ||||
|
r33293 | $ hg debugsparse --reset | ||
|
r33289 | $ rm .hg/sparse | ||
Same tests, with -Tjson enabled to output summaries | ||||
$ cat > $TESTTMP/rules_to_import <<EOF | ||||
> [include] | ||||
> *.py | ||||
> EOF | ||||
|
r33293 | $ hg debugsparse --import-rules $TESTTMP/rules_to_import -Tjson | ||
|
r33289 | [ | ||
{ | ||||
"exclude_rules_added": 0, | ||||
"files_added": 0, | ||||
"files_conflicting": 0, | ||||
"files_dropped": 4, | ||||
"include_rules_added": 1, | ||||
"profiles_added": 0 | ||||
} | ||||
] | ||||
|
r33293 | $ hg debugsparse --reset | ||
|
r33289 | $ rm .hg/sparse | ||
$ cat > $TESTTMP/rules_to_import <<EOF | ||||
> %include base.sparse | ||||
> [include] | ||||
> *.py | ||||
> EOF | ||||
|
r33293 | $ hg debugsparse --import-rules $TESTTMP/rules_to_import -Tjson | ||
|
r33289 | [ | ||
{ | ||||
"exclude_rules_added": 0, | ||||
"files_added": 0, | ||||
"files_conflicting": 0, | ||||
"files_dropped": 2, | ||||
"include_rules_added": 1, | ||||
"profiles_added": 1 | ||||
} | ||||
] | ||||
|
r33293 | $ hg debugsparse --reset | ||
|
r33289 | $ rm .hg/sparse | ||
|
r33293 | $ hg debugsparse --enable-profile webpage.sparse | ||
$ hg debugsparse --include *.py | ||||
|
r33289 | $ cat > $TESTTMP/rules_to_import <<EOF | ||
> %include base.sparse | ||||
> [include] | ||||
> *.html | ||||
> *.txt | ||||
> [exclude] | ||||
> *.py | ||||
> EOF | ||||
|
r33293 | $ hg debugsparse --import-rules $TESTTMP/rules_to_import -Tjson | ||
|
r33289 | [ | ||
{ | ||||
"exclude_rules_added": 1, | ||||
"files_added": 1, | ||||
"files_conflicting": 0, | ||||
"files_dropped": 1, | ||||
"include_rules_added": 1, | ||||
"profiles_added": 0 | ||||
} | ||||
] | ||||
If importing results in no new rules being added, no refresh should take place! | ||||
$ cat > $TESTTMP/trap_sparse_refresh.py <<EOF | ||||
|
r33324 | > from mercurial import error, sparse | ||
|
r33289 | > def extsetup(ui): | ||
|
r33324 | > def abort_refresh(*args, **kwargs): | ||
|
r33289 | > raise error.Abort('sparse._refresh called!') | ||
|
r33324 | > sparse.refreshwdir = abort_refresh | ||
|
r33289 | > EOF | ||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> trap_sparse_refresh=$TESTTMP/trap_sparse_refresh.py | ||||
> EOF | ||||
$ cat > $TESTTMP/rules_to_import <<EOF | ||||
> [include] | ||||
> *.py | ||||
> EOF | ||||
|
r33293 | $ hg debugsparse --import-rules $TESTTMP/rules_to_import | ||
|
r33289 | |||
If an exception is raised during refresh, restore the existing rules again. | ||||
$ cat > $TESTTMP/rules_to_import <<EOF | ||||
> [exclude] | ||||
> *.html | ||||
> EOF | ||||
|
r33293 | $ hg debugsparse --import-rules $TESTTMP/rules_to_import | ||
|
r33289 | abort: sparse._refresh called! | ||
[255] | ||||
$ cat .hg/sparse | ||||
%include webpage.sparse | ||||
[include] | ||||
*.py | ||||
*.txt | ||||
[exclude] | ||||
*.py | ||||