|
|
#!/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'
|
|
|
# Test directory 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 -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!'
|
|
|
exit 0
|
|
|
|
|
|
|