dirstate.walk: eliminate src from yield
- restructure 'step two' to stat unseen files
- remove extra stat logic in status
- remove redundant src
#!/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