|
|
#!/bin/sh
|
|
|
|
|
|
"$TESTDIR/hghave" darcs || exit 80
|
|
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
|
echo "convert=" >> $HGRCPATH
|
|
|
echo 'graphlog =' >> $HGRCPATH
|
|
|
|
|
|
DARCS_EMAIL='test@example.org'; export DARCS_EMAIL
|
|
|
HOME=`pwd`/do_not_use_HOME_darcs; export HOME
|
|
|
|
|
|
# skip if we can't import elementtree
|
|
|
mkdir dummy
|
|
|
mkdir dummy/_darcs
|
|
|
if hg convert dummy 2>&1 | grep ElementTree > /dev/null; then
|
|
|
echo 'skipped: missing feature: elementtree module'
|
|
|
exit 80
|
|
|
fi
|
|
|
|
|
|
echo '% try converting darcs1 repository'
|
|
|
hg clone -q "$TESTDIR/darcs1.hg" darcs
|
|
|
hg convert -s darcs darcs/darcs1 2>&1 | grep darcs-1.0
|
|
|
|
|
|
echo % initialize darcs repo
|
|
|
mkdir darcs-repo
|
|
|
cd darcs-repo
|
|
|
darcs init
|
|
|
echo a > a
|
|
|
darcs record -a -l -m p0
|
|
|
cd ..
|
|
|
|
|
|
echo % branch and update
|
|
|
darcs get darcs-repo darcs-clone >/dev/null
|
|
|
cd darcs-clone
|
|
|
echo c >> a
|
|
|
echo c > c
|
|
|
darcs record -a -l -m p1.1
|
|
|
cd ..
|
|
|
|
|
|
echo % update source
|
|
|
cd darcs-repo
|
|
|
echo b >> a
|
|
|
echo b > b
|
|
|
darcs record -a -l -m p1.2
|
|
|
|
|
|
echo % merge branch
|
|
|
darcs pull -a ../darcs-clone
|
|
|
sleep 1
|
|
|
echo e > a
|
|
|
echo f > f
|
|
|
mkdir dir
|
|
|
echo d > dir/d
|
|
|
echo d > dir/d2
|
|
|
darcs record -a -l -m p2
|
|
|
|
|
|
echo % test file and directory move
|
|
|
darcs mv f ff
|
|
|
# Test remove + move
|
|
|
darcs remove dir/d2
|
|
|
rm dir/d2
|
|
|
darcs mv dir dir2
|
|
|
darcs record -a -l -m p3
|
|
|
|
|
|
echo % test utf-8 commit message and author
|
|
|
echo g > g
|
|
|
# darcs is encoding agnostic, so it takes whatever bytes it's given
|
|
|
darcs record -a -l -m 'p4: desc ñ' -A 'author ñ'
|
|
|
|
|
|
glog()
|
|
|
{
|
|
|
HGENCODING=utf-8 hg glog --template '{rev} "{desc|firstline}" ({author}) files: {files}\n' "$@"
|
|
|
}
|
|
|
|
|
|
cd ..
|
|
|
hg convert darcs-repo darcs-repo-hg
|
|
|
# The converter does not currently handle patch conflicts very well.
|
|
|
# When they occur, it reverts *all* changes and moves forward,
|
|
|
# letting the conflict resolving patch fix collisions.
|
|
|
# Unfortunately, non-conflicting changes, like the addition of the
|
|
|
# "c" file in p1.1 patch are reverted too.
|
|
|
# Just to say that manifest not listing "c" here is a bug.
|
|
|
glog -R darcs-repo-hg
|
|
|
hg up -q -R darcs-repo-hg
|
|
|
hg -R darcs-repo-hg manifest --debug
|
|
|
|