|
|
#!/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 ../..
|
|
|
|