Mercurial > hg
view tests/test-convert-mtn @ 8063:ee8d9b93b316
convert/p4: win32 fixes
* cmd.exe does not know single quotes
* win32 does not like trailing whitespace very much. Trade test coverage for
maintenance time and drop the trailing whitespaces tests.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Mon, 13 Apr 2009 16:15:45 +0200 |
parents | 087cc65bebff |
children | 3cdf4872941a |
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' 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