mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
6de8a70a9d
With inotify enabled, files that should be ignored could be detected as untracked by mercurial. This behavior was wrong because inotify's filestatus implementation only matched filenames against ignore patterns, instead of checking if other elements of their paths matched them. This patch fixes the behavior by checking the file paths against the ignore patterns. A new test has also been added to the main inotify test to prevent any regressions.
114 lines
1.7 KiB
Bash
Executable File
114 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
"$TESTDIR/hghave" inotify || exit 80
|
|
|
|
hg init repo1
|
|
cd repo1
|
|
|
|
touch a b c d e
|
|
mkdir dir
|
|
mkdir dir/bar
|
|
touch dir/x dir/y dir/bar/foo
|
|
|
|
hg ci -Am m
|
|
cd ..
|
|
hg clone repo1 repo2
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
echo "inotify=" >> $HGRCPATH
|
|
|
|
cd repo2
|
|
echo b >> a
|
|
# check that daemon started automatically works correctly
|
|
# and make sure that inotify.pidfile works
|
|
hg --config "inotify.pidfile=../hg2.pid" status
|
|
|
|
# make sure that pidfile worked. Output should be silent.
|
|
kill `cat ../hg2.pid`
|
|
|
|
cd ../repo1
|
|
echo % inserve
|
|
hg inserve -d --pid-file=hg.pid
|
|
cat hg.pid >> "$DAEMON_PIDS"
|
|
|
|
# let the daemon finish its stuff
|
|
sleep 1
|
|
|
|
echo % cannot start, already bound
|
|
hg inserve
|
|
|
|
# issue907
|
|
hg status
|
|
echo % clean
|
|
hg status -c
|
|
echo % all
|
|
hg status -A
|
|
|
|
echo '% path patterns'
|
|
echo x > dir/x
|
|
hg status .
|
|
hg status dir
|
|
cd dir
|
|
hg status .
|
|
cd ..
|
|
|
|
#issue 1375
|
|
#Testing that we can remove a folder and then add a file with the same name
|
|
echo % issue 1375
|
|
|
|
mkdir h
|
|
echo h > h/h
|
|
hg ci -Am t
|
|
hg rm h
|
|
|
|
echo h >h
|
|
hg add h
|
|
|
|
hg status
|
|
hg ci -m0
|
|
|
|
# Test for issue1735: inotify watches files in .hg/merge
|
|
hg st
|
|
|
|
echo a > a
|
|
|
|
hg ci -Am a
|
|
hg st
|
|
|
|
echo b >> a
|
|
hg ci -m ab
|
|
hg st
|
|
|
|
echo c >> a
|
|
hg st
|
|
|
|
HGMERGE=internal:local hg up 0
|
|
hg st
|
|
|
|
HGMERGE=internal:local hg up
|
|
hg st
|
|
|
|
# Test for 1844: "hg ci folder" will not commit all changes beneath "folder"
|
|
mkdir 1844
|
|
echo a > 1844/foo
|
|
hg add 1844
|
|
hg ci -m 'working'
|
|
|
|
echo b >> 1844/foo
|
|
hg ci 1844 -m 'broken'
|
|
|
|
# Test for issue884: "Build products not ignored until .hgignore is touched"
|
|
echo '^build$' > .hgignore
|
|
hg add .hgignore
|
|
hg ci .hgignore -m 'ignorelist'
|
|
|
|
# Now, lets add some build products...
|
|
mkdir build
|
|
touch build/x
|
|
touch build/y
|
|
|
|
# build/x & build/y shouldn't appear in "hg st"
|
|
hg st
|
|
|
|
kill `cat hg.pid`
|