convert/gnuarch: parse continuation-of revisions in gnuarch source
In GNU Arch, continuation-of was often used for:
- tagging revisions
- continue working on a project in a new archive, because arch
was scaling poorly in revision numbers (cat-logs were slow
to be parsed and scanned through)
- very similar to the previous point, fork his own branch of
a project.
Parsing this header information will allow to 'follow' new history
because it often hints at older/forked/personal revision trees.
This patch however just implements the parsing of the
continuation-of header. A followup patch will implement the proper
use of this new information.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
echo "rebase=" >> $HGRCPATH
BASE=`pwd`
addcommit () {
echo $1 > $1
hg add $1
hg commit -d "${2} 0" -u test -m $1
}
commit () {
hg commit -d "${2} 0" -u test -m $1
}
cd $BASE
rm -rf a
hg init a
cd a
addcommit "C1" 0
addcommit "C2" 1
cd ..
hg clone a b
cd b
addcommit "L1" 2
cd ../a
addcommit "R1" 3
cd ../b
echo
echo "% Now b has one revision to be pulled from a"
hg pull --rebase 2>&1 | sed -e 's/\(saving bundle to \).*/\1/' \
-e 's/\(pulling from \).*/\1/'
hg glog --template '{rev}:{desc}\n'
echo
echo "% Re-run pull --rebase"
hg pull --rebase 2>&1 | sed 's/\(pulling from \).*/\1/'
echo
echo "% Invoke pull --rebase with --update"
hg pull --rebase --update
exit 0