mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 14:58:03 +03:00
1ab1ffa329
Summary: Now that the python-to-rust status path uses the same entry point as the pure-rust status, let's enable the python-to-rust in tests. Disables it for a few tests that are still failing. Many of these are because the tests are still using legacy configurations that the Rust code doesn't work with. Reviewed By: jordanwebster Differential Revision: D39753911 fbshipit-source-id: b1e27ef1926bc7b196a59b65bcc96881bd9e23b2
169 lines
3.8 KiB
Perl
169 lines
3.8 KiB
Perl
#chg-compatible
|
|
|
|
test sparse
|
|
|
|
$ configure modernclient
|
|
|
|
$ enable sparse rebase
|
|
$ newclientrepo myrepo
|
|
|
|
$ echo z > file.txt
|
|
$ mkdir exc
|
|
$ mkdir -p inc/exc
|
|
$ echo z > exc/file.txt
|
|
$ echo z > inc/file.txt
|
|
$ echo z > inc/exc/incfile.txt
|
|
$ echo z > inc/exc/excfile.txt
|
|
$ cat > base.sparse <<EOF
|
|
> [include]
|
|
> glob:*.sparse
|
|
> path:file.txt
|
|
> path:inc/
|
|
>
|
|
> [exclude]
|
|
> path:inc/exc
|
|
>
|
|
> [metadata]
|
|
> version: 2
|
|
> EOF
|
|
$ cat > main.sparse <<EOF
|
|
> %include base.sparse
|
|
> [include]
|
|
> path:inc/exc/incfile.txt
|
|
> EOF
|
|
$ hg ci -Aqm 'initial'
|
|
$ hg sparse enable main.sparse
|
|
|
|
# Verify inc/exc/incfile.txt is not included.
|
|
$ ls -R | grep -v :
|
|
base.sparse
|
|
file.txt
|
|
inc
|
|
main.sparse
|
|
|
|
file.txt
|
|
|
|
|
|
$ hg debugsparseexplainmatch inc/exc/incfile.txt
|
|
inc/exc/incfile.txt: excluded by rule !inc/exc/** ($TESTTMP/myrepo/.hg/sparse -> main.sparse -> base.sparse)
|
|
|
|
$ hg debugsparseexplainmatch -s main.sparse inc/exc/incfile.txt
|
|
inc/exc/incfile.txt: excluded by rule !inc/exc/** (<cli> -> main.sparse -> base.sparse)
|
|
|
|
# Upgrade main.sparse to v2
|
|
$ cat > main.sparse <<EOF
|
|
> [metadata]
|
|
> version: 2
|
|
> %include base.sparse
|
|
> [include]
|
|
> inc/exc/incfile.txt
|
|
> EOF
|
|
$ hg commit -qm "v2 sparse"
|
|
|
|
# Verify inc/exc/incfile.txt is now included.
|
|
$ ls -R | grep -v :
|
|
base.sparse
|
|
file.txt
|
|
inc
|
|
main.sparse
|
|
|
|
exc
|
|
file.txt
|
|
|
|
incfile.txt
|
|
|
|
$ hg debugsparseexplainmatch inc/exc/incfile.txt
|
|
inc/exc/incfile.txt: included by rule inc/exc/incfile.txt/** ($TESTTMP/myrepo/.hg/sparse -> main.sparse)
|
|
|
|
|
|
$ hg debugsparseprofilev2 main.sparse
|
|
V1 includes 4 files
|
|
V2 includes 5 files
|
|
+ inc/exc/incfile.txt
|
|
|
|
Do not union profiles outside the root .hg/sparse config.
|
|
$ cat > temp.sparse <<EOF
|
|
> [metadata]
|
|
> version: 2
|
|
>
|
|
> %include main.sparse
|
|
> %include base.sparse
|
|
> EOF
|
|
$ hg commit -Aqm "add temp.sparse"
|
|
$ hg debugsparsematch -s temp.sparse inc/exc/incfile.txt
|
|
considering 1 file(s)
|
|
$ rm temp.sparse
|
|
|
|
Do union profiles in root .hg/sparse config.
|
|
$ hg sparse enable base.sparse
|
|
$ ls inc/exc/incfile.txt
|
|
inc/exc/incfile.txt
|
|
$ hg sparse disable base.sparse
|
|
|
|
Test that multiple profiles do not clobber each others includes
|
|
# Exclude inc/exc/incfile.txt which main.sparse includes and
|
|
# include inc/exc/excfile.txt which main.sparse excludes. Verify they are now
|
|
# both present.
|
|
$ cat >> other.sparse <<EOF
|
|
> [include]
|
|
> inc/exc/excfile.txt
|
|
> [exclude]
|
|
> inc/exc/incfile.txt
|
|
> EOF
|
|
$ hg commit -Aqm 'other.sparse'
|
|
$ hg sparse enable other.sparse
|
|
$ find . -type f -not -wholename "**/.hg/**" | sort
|
|
./base.sparse
|
|
./file.txt
|
|
./inc/exc/excfile.txt
|
|
./inc/exc/incfile.txt
|
|
./inc/file.txt
|
|
./main.sparse
|
|
./other.sparse
|
|
|
|
# Test explain with multiple matches
|
|
|
|
$ newclientrepo
|
|
$ cat > s1.sparse << 'EOF'
|
|
> !glob:a*.sparse
|
|
> [metadata]
|
|
> version: 2
|
|
> EOF
|
|
$ cat > s2.sparse << 'EOF'
|
|
> glob:a*.sparse
|
|
> [metadata]
|
|
> version: 2
|
|
> EOF
|
|
$ cat > s3.sparse << 'EOF'
|
|
> glob:*b.sparse
|
|
> [metadata]
|
|
> version: 2
|
|
> EOF
|
|
$ cat > s4.sparse << 'EOF'
|
|
> !glob:*b.sparse
|
|
> [metadata]
|
|
> version: 2
|
|
> EOF
|
|
|
|
$ hg ci -Am init s1.sparse s2.sparse s3.sparse s4.sparse
|
|
$ hg sparse enable s1.sparse s4.sparse
|
|
|
|
$ hg debugsparseexplainmatch ab.sparse
|
|
ab.sparse:
|
|
!a*.sparse/** ($TESTTMP/repo1/.hg/sparse -> s1.sparse)
|
|
!*b.sparse/** ($TESTTMP/repo1/.hg/sparse -> s4.sparse)
|
|
|
|
$ hg sparse enable s2.sparse s3.sparse
|
|
$ hg debugsparseexplainmatch ab.sparse
|
|
ab.sparse:
|
|
a*.sparse/** ($TESTTMP/repo1/.hg/sparse -> s2.sparse)
|
|
*b.sparse/** ($TESTTMP/repo1/.hg/sparse -> s3.sparse)
|
|
!a*.sparse/** ($TESTTMP/repo1/.hg/sparse -> s1.sparse) (overridden by rules above)
|
|
!*b.sparse/** ($TESTTMP/repo1/.hg/sparse -> s4.sparse) (overridden by rules above)
|
|
|
|
|
|
$ newclientrepo
|
|
$ hg debugsparseexplainmatch something
|
|
abort: --sparse-profile is required
|
|
[255]
|