mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
3f183f1756
Summary: If the repo has treemanifests, we can use this to do the case check faster. Note that with treemanifests we only find the first path component that conflicts (subsequent conflicts won't be found), as these conflicts occur in different trees. Reviewed By: farnz Differential Revision: D8332426 fbshipit-source-id: 243dab9bf711c6fdb62a0e0ba4346faea3b6b0ad
70 lines
1.9 KiB
Perl
70 lines
1.9 KiB
Perl
The ordering and format of case collisions detected using treemanifest is
|
|
different, so this is a different test script.
|
|
|
|
$ . "$TESTDIR/library.sh"
|
|
|
|
$ hginit master
|
|
$ cd master
|
|
$ cat >> .hg/hgrc <<EOF
|
|
> [remotefilelog]
|
|
> server=True
|
|
> EOF
|
|
|
|
$ hgcloneshallow ssh://user@dummy/master client -q
|
|
$ cd client
|
|
$ cat >> .hg/hgrc <<EOF
|
|
> [extensions]
|
|
> fastmanifest=
|
|
> treemanifest=
|
|
> [remotefilelog]
|
|
> usefastdatapack=True
|
|
> [fastmanifest]
|
|
> usetree=True
|
|
> usecache=False
|
|
> EOF
|
|
|
|
$ sorted() {
|
|
> "$@" > $TESTTMP/out
|
|
> local rc=$?
|
|
> sort < $TESTTMP/out
|
|
> rm -f $TESTTMP/out
|
|
> return $rc
|
|
> }
|
|
|
|
$ mkdir -p dirA/subdirA dirA/subdirB dirB
|
|
$ touch dirA/subdirA/file1 dirA/subdirB/file2 dirB/file3 file4
|
|
$ hg commit -Aqm "base"
|
|
|
|
Check basic case collisions
|
|
$ sorted hg debugcheckcasecollisions DIRA/subdira/FILE1 DIRA/SUBDIRB/file2 DIRB/FILE3
|
|
DIRA (directory for DIRA/SUBDIRB/file2) conflicts with dirA
|
|
DIRB (directory for DIRB/FILE3) conflicts with dirB
|
|
[1]
|
|
$ sorted hg debugcheckcasecollisions dirA/subdirA/FILE1 dirA/SUBDIRB/file2 dirB/FILE3
|
|
dirA/SUBDIRB (directory for dirA/SUBDIRB/file2) conflicts with dirA/subdirB
|
|
dirA/subdirA/FILE1 conflicts with dirA/subdirA/file1
|
|
dirB/FILE3 conflicts with dirB/file3
|
|
[1]
|
|
|
|
Check a dir that collides with a file
|
|
$ hg debugcheckcasecollisions FILE4/foo
|
|
FILE4 (directory for FILE4/foo) conflicts with file4
|
|
[1]
|
|
|
|
Check a file that collides with a dir
|
|
$ hg debugcheckcasecollisions DIRb
|
|
DIRb conflicts with dirB
|
|
[1]
|
|
|
|
Check self-conflicts
|
|
$ hg debugcheckcasecollisions newdir/newfile NEWdir/newfile newdir/NEWFILE
|
|
NEWdir/newfile conflicts with newdir/newfile
|
|
NEWdir (directory for NEWdir/newfile) conflicts with newdir (directory for newdir/newfile)
|
|
newdir/NEWFILE conflicts with newdir/newfile
|
|
[1]
|
|
|
|
Check against a particular revision
|
|
$ hg debugcheckcasecollisions -r 0 FILE4
|
|
FILE4 conflicts with file4
|
|
[1]
|