view tests/test-convert-svn-sink @ 10092:f1bf64abcb1b stable

doc/Makefile: Fix rst2html detection Displaying the output from the failing call to "which" didn't prevent make from doing stupid things later. We now only search for "rst2html" and fallback to "rst2html.py". If neither name is found, make will eventually abort when we try to use $(RST2HTML).
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 16 Dec 2009 23:59:50 +0100
parents 99e5f97c9a97
children 14db59e3b248
line wrap: on
line source

#!/bin/sh

"$TESTDIR/hghave" svn svn-bindings no-outer-repo || exit 80

fixpath()
{
    tr '\\' /
}

svnupanddisplay()
{
    (
       cd $1;
       svn up;
       svn st -v | fixpath | sed 's/  */ /g'
       limit=''
       if [ $2 -gt 0 ]; then
           limit="--limit=$2"
       fi
       svn log --xml -v $limit | fixpath | sed 's,<date>.*,<date/>,' | grep -v 'kind="'
    )
}

echo "[extensions]" >> $HGRCPATH
echo "convert = " >> $HGRCPATH

hg init a

echo a > a/a
mkdir -p a/d1/d2
echo b > a/d1/d2/b
echo % add
hg --cwd a ci -d '0 0' -A -m 'add a file'

"$TESTDIR/svn-safe-append.py" a a/a
echo % modify
hg --cwd a ci -d '1 0' -m 'modify a file'
hg --cwd a tip -q

hg convert -d svn a
svnupanddisplay a-hg-wc 2
ls a a-hg-wc
cmp a/a a-hg-wc/a && echo same || echo different

hg --cwd a mv a b
echo % rename
hg --cwd a ci -d '2 0' -m 'rename a file'
hg --cwd a tip -q

hg convert -d svn a
svnupanddisplay a-hg-wc 1
ls a a-hg-wc

hg --cwd a cp b c
echo % copy
hg --cwd a ci -d '3 0' -m 'copy a file'
hg --cwd a tip -q

hg convert -d svn a
svnupanddisplay a-hg-wc 1
ls a a-hg-wc

hg --cwd a rm b
echo % remove
hg --cwd a ci -d '4 0' -m 'remove a file'
hg --cwd a tip -q

hg convert -d svn a
svnupanddisplay a-hg-wc 1
ls a a-hg-wc

chmod +x a/c
echo % executable
hg --cwd a ci -d '5 0' -m 'make a file executable'
hg --cwd a tip -q

hg convert -d svn a
svnupanddisplay a-hg-wc 1
test -x a-hg-wc/c && echo executable || echo not executable

echo % executable in new directory

rm -rf a a-hg a-hg-wc
hg init a

mkdir a/d1
echo a > a/d1/a
chmod +x a/d1/a
hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory'

hg convert -d svn a
svnupanddisplay a-hg-wc 1
test -x a-hg-wc/d1/a && echo executable || echo not executable

echo % copy to new directory

mkdir a/d2
hg --cwd a cp d1/a d2/a
hg --cwd a ci -d '1 0' -A -m 'copy file to new directory'

hg convert -d svn a
svnupanddisplay a-hg-wc 1

echo % branchy history

hg init b
echo base > b/b
hg --cwd b ci -d '0 0' -Ambase

"$TESTDIR/svn-safe-append.py" left-1 b/b
echo left-1 > b/left-1
hg --cwd b ci -d '1 0' -Amleft-1

"$TESTDIR/svn-safe-append.py" left-2 b/b
echo left-2 > b/left-2
hg --cwd b ci -d '2 0' -Amleft-2

hg --cwd b up 0

"$TESTDIR/svn-safe-append.py" right-1 b/b
echo right-1 > b/right-1
hg --cwd b ci -d '3 0' -Amright-1

"$TESTDIR/svn-safe-append.py" right-2 b/b
echo right-2 > b/right-2
hg --cwd b ci -d '4 0' -Amright-2

hg --cwd b up -C 2
hg --cwd b merge
hg --cwd b revert -r 2 b
hg resolve -m b
hg --cwd b ci -d '5 0' -m 'merge'

hg convert -d svn b
echo % expect 4 changes
svnupanddisplay b-hg-wc 0