view tests/test-convert-mtn @ 7415:6163ef936a00

protocol: use changegroupsubset() if possible (issue1389) Due to the fix to the pull race, to avoid sending unnecessary changesets, use changegroupsubset if possible. This will increase the load on the server.
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Tue, 25 Nov 2008 23:26:33 +0100
parents 39b4db2ea6ed
children 087cc65bebff
line wrap: on
line source

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