##// END OF EJS Templates
issue1577: fix broken test by assuming less about CVS output....
issue1577: fix broken test by assuming less about CVS output. Specifically, output of "cvs ci" varies unpredictably across CVS versions, so any test that includes the output of "cvs ci" is doomed to fail some of the time. This fixes that by discarding the output of "cvs ci".

File last commit:

r8050:087cc65b default
r8081:6c3b8132 default
Show More
test-convert-mtn
106 lines | 2.4 KiB | text/plain | TextLexer
#!/bin/sh
"$TESTDIR/hghave" mtn || exit 80
# Monotone directory is called .monotone on *nix and monotone
# on Windows. Having a variable here ease test patching.
mtndir=.monotone
echo "[extensions]" >> $HGRCPATH
echo "convert=" >> $HGRCPATH
echo 'hgext.graphlog =' >> $HGRCPATH
HOME=`pwd`/do_not_use_HOME_mtn; export HOME
# Windows version of monotone home
APPDATA=$HOME; export APPDATA
echo % tedious monotone keys configuration
# The /dev/null redirection is necessary under Windows, or
# it complains about home directory permissions
mtn --quiet genkey test@selenic.com 1>/dev/null 2>&1 <<EOF
passphrase
passphrase
EOF
cat >> $HOME/$mtndir/monotonerc <<EOF
function get_passphrase(keypair_id)
return "passphrase"
end
EOF
echo % create monotone repository
mtn db init --db=repo.mtn
mtn --db=repo.mtn --branch=com.selenic.test setup workingdir
cd workingdir
echo a > a
mkdir dir
echo b > dir/b
python -c 'file("bin", "wb").write("a\\x00b")'
echo c > c
mtn add a dir/b c bin
mtn ci -m initialize
echo % update monotone working directory
mtn mv a dir/a
echo a >> dir/a
echo b >> dir/b
mtn drop c
python -c 'file("bin", "wb").write("b\\x00c")'
mtn ci -m update1
cd ..
echo % convert once
hg convert -s mtn repo.mtn
cd workingdir
echo e > e
mtn add e
mtn drop dir/b
mtn mv bin bin2
mtn ci -m 'update2 "with" quotes'
echo '% test directory move'
mkdir -p dir1/subdir1
mkdir -p dir1/subdir2_other
echo file1 > dir1/subdir1/file1
echo file2 > dir1/subdir2_other/file1
mtn add dir1/subdir1/file1 dir1/subdir2_other/file1
mtn ci -m createdir1
mtn rename dir1/subdir1 dir1/subdir2
mtn ci -m movedir1
echo '% test subdirectory move'
mtn mv dir dir2
mtn ci -m movedir
# Test directory removal with empty directory
mkdir dir2/dir
mkdir dir2/dir/subdir
echo f > dir2/dir/subdir/f
mkdir dir2/dir/emptydir
mtn add --quiet -R dir2/dir
mtn ci -m emptydir
mtn drop -R dir2/dir
mtn ci -m dropdirectory
cd ..
echo % convert incrementally
hg convert -s mtn repo.mtn
glog()
{
hg glog --template '#rev# "#desc|firstline#" files: #files#\n' "$@"
}
cd repo.mtn-hg
hg up -C
glog
echo % manifest
hg manifest
echo % contents
cat dir2/a
test -d dir2/dir && echo 'removed dir2/dir is still there!'
echo % file move
hg log -v -C -r 1 | grep copies
echo % check directory move
hg manifest -r 4
test -d dir1/subdir2 || echo 'new dir1/subdir2 does not exist!'
test -d dir1/subdir1 && echo 'renamed dir1/subdir1 is still there!'
hg log -v -C -r 4 | grep copies
exit 0