view tests/test-convert-bzr @ 11521:3efadce5b346 stable

extensions: add a few assertions to wrapfunction() and wrapcommand(). Specifically, assert that the given wrapper is callable in both functions, and assert that the original was also callable in wrapfunction().
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Fri, 09 Jul 2010 11:04:00 +0200
parents dd24488cba2d
children
line wrap: on
line source

#!/bin/sh

. "$TESTDIR/bzr-definitions"

echo % create and rename on the same file in the same step
mkdir test-createandrename
cd test-createandrename
bzr init -q source
cd source
echo a > a
echo c > c
echo e > e
bzr add -q a c e
bzr commit -q -m 'Initial add: a, c, e'
bzr mv a b
bzr mv c d
bzr mv e f
echo a2 >> a
mkdir e
bzr add -q a e
bzr commit -q -m 'rename a into b, create a, rename c into d'
cd ..
hg convert source source-hg
glog -R source-hg
echo "% manifest"
hg manifest -R source-hg -r tip
echo "% test --rev option"
hg convert -r 1 source source-1-hg
glog -R source-1-hg
echo "% test with filemap"
cat > filemap <<EOF
exclude a
EOF
hg convert --filemap filemap source source-filemap-hg
hg -R source-filemap-hg manifest -r tip

echo '% convert from lightweight checkout'
bzr checkout --lightweight source source-light
hg convert source-light source-light-hg
echo "% lightweight manifest"
hg manifest -R source-light-hg -r tip

# extract timestamps that look just like hg's {date|isodate}:
# yyyy-mm-dd HH:MM zzzz (no seconds!)
echo "% compare timestamps"
cd source
bzr log | \
  sed '/timestamp/!d;s/.\{15\}\([0-9: -]\{16\}\):.. \(.[0-9]\{4\}\)/\1 \2/' \
  > ../bzr-timestamps
cd ..

hg -R source-hg log --template "{date|isodate}\n" > hg-timestamps
if diff -q bzr-timestamps hg-timestamps ; then
  echo "good: hg timestamps match bzr timestamps"
else
  echo "fail: bzr timestamps are:"
  cat bzr-timestamps
  echo "but hg timestamps are:"
  cat hg-timestamps
fi

cd ..

echo % merge
mkdir test-merge
cd test-merge

cat > helper.py <<EOF
import sys
from bzrlib import workingtree
wt = workingtree.WorkingTree.open('.')

message, stamp = sys.argv[1:]
wt.commit(message, timestamp=int(stamp))
EOF

bzr init -q source
cd source
echo content > a
echo content2 > b
bzr add -q a b
bzr commit -q -m 'Initial add'
cd ..
bzr branch -q source source-improve
cd source
echo more >> a
python ../helper.py 'Editing a' 100
cd ../source-improve
echo content3 >> b
python ../helper.py 'Editing b' 200
cd ../source
bzr merge -q ../source-improve
bzr commit -q -m 'Merged improve branch'
cd ..
hg convert --datesort source source-hg
glog -R source-hg
cd ..

echo % symlinks and executable files
mkdir test-symlinks
cd test-symlinks
bzr init -q source
cd source
touch program
chmod +x program
ln -s program altname
mkdir d
echo a > d/a
ln -s a syma
bzr add -q altname program syma d/a
bzr commit -q -m 'Initial setup'
touch newprog
chmod +x newprog
rm altname
ln -s newprog altname
chmod -x program
bzr add -q newprog
bzr commit -q -m 'Symlink changed, x bits changed'
cd ..
hg convert source source-hg
manifest source-hg 0
manifest source-hg tip
cd source-hg
echo % test the symlinks can be recreated
hg up
hg cat syma
cd ../..