view tests/test-issue322 @ 4131:1ca664c964e0

don't return uninitialized memory from bdiff.blocks() bdiff.blocks() returns a dummy match at the end of both files; the length of that chunk is never set, so it will sometimes contain random heap garbage. There are apparently workarounds for this elsewhere: # bdiff sometimes gives huge matches past eof, this check eats them,
author Erling Ellingsen <erlingalf@gmail.com>
date Tue, 20 Feb 2007 22:20:16 +0100
parents 9dcf9d45cab8
children 7a7d4937272b
line wrap: on
line source

#!/bin/sh
# http://www.selenic.com/mercurial/bts/issue322

echo % file replaced with directory

hg init a
cd a       
echo a > a 
hg commit -Ama 
rm a       
mkdir a    
echo a > a/a

echo % should fail - would corrupt dirstate
hg add a/a

cd ..      

echo % directory replaced with file

hg init c
cd c
mkdir a
echo a > a/a
hg commit -Ama

rm -r a
echo a > a

echo % should fail - would corrupt dirstate
hg add a

cd ..

echo % directory replaced with file

hg init d
cd d
mkdir b
mkdir b/c
echo a > b/c/d
hg commit -Ama
rm -r b
echo a > b

echo % should fail - would corrupt dirstate
hg add b

exit 0