Mercurial > hg > hgforest
view test-forest @ 60:df4e33bd7149
The "forests" request should now be network clean.
repo.forests() should always return '/'-separated paths, which will be
converted using util.localpath() by the client.
author | Simon Law <simon@akoha.org> |
---|---|
date | Mon, 27 Aug 2007 13:38:49 -0400 |
parents | 00777c6a37b6 |
children | 5d770477eb1a |
line wrap: on
line source
#! /bin/sh HGRCPATH=$HGTMP/.hgrc export HGRCPATH echo "[extensions]" >> $HGRCPATH echo "mq=" >> $HGRCPATH echo "forest=" >> $HGRCPATH echo "# setup initial forest" hg init toplevel echo "f" > toplevel/f mkdir toplevel/d echo "d/f" > toplevel/d/f mkdir toplevel/d/d echo "d/d/f" > toplevel/d/d/f hg init toplevel/d/d/t echo "d/d/t/f" > toplevel/d/d/t/f hg init toplevel/t echo "t/f" > toplevel/t/f hg init toplevel/t/t echo "t/t/f" > toplevel/t/t/f mkdir toplevel/e hg init toplevel/e/d echo "e/d/f" > toplevel/e/d/f hg commit --cwd toplevel -A -m "start" -d "0 0" hg commit --cwd toplevel/d/d/t -A -m "start" -d "0 0" hg commit --cwd toplevel/t -A -m "start" -d "0 0" hg commit --cwd toplevel/t/t -A -m "start" -d "0 0" hg commit --cwd toplevel/e/d -A -m "start" -d "0 0" echo "# ftrees" hg ftrees --convert --cwd toplevel echo "# fstatus" echo "x" >> toplevel/d/d/t/f echo "new" >> toplevel/t/t/f2 hg fstatus --cwd toplevel hg revert --cwd toplevel/d/d/t --no-backup f rm -f toplevel/t/t/f2 hg fstatus --cwd toplevel echo "# fclone" hg fclone toplevel topcopy hg fsnap --cwd topcopy > top-snap echo "# fsnap" hg fsnap --cwd toplevel > top-snap1 echo "x" >> toplevel/t/t/f hg commit --cwd toplevel/t/t -m "new line" -d "0 0" echo "f2" > toplevel/d/d/f2 hg commit --cwd toplevel/d/d -A -m "new file" -d "0 0" hg fsnap -R toplevel > top-snap2 diff -u top-snap1 top-snap2 | \ sed -e 's/--- top-snap1.*$/--- top-snap1/' \ -e 's/+++ top-snap2.*$/+++ top-snap2/' echo "# fupdate" hg fclone toplevel newtop > /dev/null hg fupdate -R newtop top-snap > /dev/null hg parents --cwd newtop/d/d/t hg parents --cwd newtop/t/t hg fupdate --cwd newtop --tip > /dev/null hg parents --cwd newtop/d/d/t hg parents --cwd newtop/t/t rm -rf newtop echo "# fseed" hg clone toplevel newtop hg fseed -R newtop top-snap default rm -rf newtop hg fseed --root newtop top-snap default >/dev/null hg fsnap --cwd newtop | sed "s@\(/private\)*$HGTMP@HGTMP@g" rm -rf newtop echo "# fpull" hg fpull --cwd topcopy -u ../top-snap default \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" echo "# fpush" echo "t/t/f" > topcopy/t/t/f hg commit --cwd topcopy/t/t -m "delete new line" -d "0 0" hg remove --cwd topcopy/d/d f2 hg commit -R topcopy -m "remove new file" -d "0 0" hg fpush -R topcopy top-snap default | sed "s@\(/private\)*$HGTMP@HGTMP@g" echo "# fseed and fpull, missing section" cat top-snap | \ sed -e '/\[tree2\]/,/^$/ d' \ -e '/\[tree2.paths\]/,/^$/ d' > top-snap-missing # with --root hg fseed --root missing top-snap-missing default hg ftrees --cwd missing --convert rm -rf missing # without --root hg init missing hg fseed --cwd missing ../top-snap-missing default hg ftrees -R missing --convert # pull (should find toplevel changesets) hg fpull -R missing top-snap-missing default \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" rm -rf missing echo "# fseed and fpull, named section" cat top-snap | \ sed 's/\[tree2/\[treenamed/' > top-snap-named hg fseed --root named top-snap-named default hg ftrees --cwd named --convert # pull (should find nothing) hg fpull --cwd named ../top-snap-named default \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" rm -rf named # create an mq patch in topcopy/t hg qinit --cwd topcopy/t hg qnew --cwd topcopy/t mq-patch echo "zzz" > topcopy/t/z hg add --cwd topcopy/t z hg qrefresh --cwd topcopy/t echo "# fstatus + mq" hg fstatus --cwd topcopy echo "# fclone + mq" hg fclone topcopy newtop rm -rf newtop echo "# fsnap + mq" hg fsnap --cwd topcopy ../top-snap1 echo "# fpull + mq" hg fpull --cwd topcopy -u ../top-snap default \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" echo "# fpush + mq" hg fpush --cwd topcopy ../top-snap default \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" echo "# walk **/.hg" hg init walkhg hg init walkhg/.hg/h hg init walkhg/a hg init walkhg/a/.hg/h hg ftrees --cwd walkhg --convert --walkhg=0 hg ftrees -R walkhg --convert echo "[forest]" >> walkhg/.hg/hgrc echo "walkhg = Yes" >> walkhg/.hg/hgrc hg ftrees -R walkhg --convert hg ftrees --cwd walkhg --convert --walkhg=FALSE echo "[forest]" >> walkhg/.hg/hgrc echo "walkhg = No" >> walkhg/.hg/hgrc hg ftrees -R walkhg --convert hg ftrees --cwd walkhg --convert --walkhg=FALSE echo "# circular trees" hg init circular hg init circular/a ln -s . circular/b hg init circular/a/a ln -s . circular/a/b ln -s .. circular/a/c hg fstatus -R circular