Mercurial > hg > hgforest
view test-forest @ 69:cb22e7675abc
`hg fupdate` now behaves much like `hg update`
author | Simon Law <simon@akoha.org> |
---|---|
date | Mon, 27 Aug 2007 13:50:49 -0400 |
parents | e19e732274b7 |
children | 148376451559 |
line wrap: on
line source
#! /bin/sh #alias hg='hg --traceback' 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 hg parents --cwd newtop/d/d/t hg parents --cwd newtop/t/t hg fupdate --cwd newtop --tip hg update --cwd newtop 0 hg update --cwd newtop/t/t 0 hg fupdate --cwd newtop hg update --cwd newtop 0 hg update --cwd newtop/t/t 0 hg fupdate --cwd newtop --rev tip hg update --cwd newtop 0 hg update --cwd newtop/t/t 0 hg fupdate --cwd newtop tip hg update --cwd newtop 0 hg update --cwd newtop/t/t 0 rm -f newtop/f newtop/t/t/f hg fupdate --cwd newtop -C 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 --traceback --root newtop top-snap default >/dev/null hg fsnap --cwd newtop --compatible | sed "s@\(/private\)*$HGTMP@HGTMP@g" hg fsnap --cwd newtop | sed "s@\(/private\)*$HGTMP@HGTMP@g" rm -rf newtop echo "# fpull" hg fpull --cwd topcopy -u --snapfile=../top-snap default 2>&1 \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" hg fpull --cwd topcopy -u ../top-snap default 2>&1 \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" # Simulate a new repository rm -rf topcopy/t hg fpull -R topcopy -u 2>&1 \ | 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 2>&1 \ | 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 2>&1 \ | 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 # create a versioned mq patch in topcopy/t hg qinit -c --cwd topcopy/t/t hg qnew --cwd topcopy/t/t mq-patch echo "zzz" > topcopy/t/t/z hg add --cwd topcopy/t/t z hg qrefresh --cwd topcopy/t/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 2>&1 \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" echo "# fpush + mq" hg fpush --cwd topcopy ../top-snap default 2>&1 \ | sed "s@\(/private\)*$HGTMP@HGTMP@g" echo "# fupdate + mq" hg fupdate --cwd topcopy 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