tests/test-convert-splicemap
author Martin Geisler <mg@lazybytes.net>
Sat, 29 Aug 2009 00:29:16 +0200
changeset 9410 1c83938b6a8e
parent 8523 5b7da468531b
child 10119 bb5ea66789e3
permissions -rwxr-xr-x
extensions: load and configure extensions in well-defined phases Extensions are now loaded with a call-graph like this: dispatch._dispatch extensions.loadall extensions.load # add foo module to extensions._extensions extensions.load # add bar module to extensions._extensions foo.uisetup(ui) bar.uisetup(ui) foo.extsetup() bar.extsetup() commands.table.update(foo.cmdtable) commands.table.update(bar.cmdtable) hg.repository foo.reposetup(ui, repo) bar.reposetup(ui, repo) The uisetup calls could easily be moved out to dispatch._dispatch, but have been kept in extensions.loadall since at least TortoiseHg calls extensions.loadall and expects it to call uisetup. The extensions.load function called uisetup. It now has an unused ui argument which has been kept for backwards compatibility.

#!/bin/sh

echo "[extensions]" >> $HGRCPATH
echo "convert=" >> $HGRCPATH
echo 'hgext.graphlog =' >> $HGRCPATH

glog()
{
    hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
}

hg init repo1
cd repo1
echo a > a
hg ci -Am adda
echo b > b
echo a >> a
hg ci -Am addb
PARENTID1=`hg id --debug -i`
echo c > c
hg ci -Am addc
PARENTID2=`hg id --debug -i`
cd ..

hg init repo2
cd repo2
echo b > a
echo d > d
hg ci -Am addaandd
CHILDID1=`hg id --debug -i`
echo d >> d
hg ci -Am changed
CHILDID2=`hg id --debug -i`
echo e > e
hg ci -Am adde
cd ..

echo '% test invalid splicemap'
cat > splicemap <<EOF
$CHILDID2
EOF
hg convert --splicemap splicemap repo2 repo1

echo '% splice repo2 on repo1'
cat > splicemap <<EOF
$CHILDID1 $PARENTID1
$CHILDID2 $PARENTID2,$CHILDID1
EOF
hg clone repo1 target1
hg convert --splicemap splicemap repo2 target1
glog -R target1