Mercurial > hg
diff tests/test-bundle-vs-outgoing @ 9821:7d2e9121ef4f
bundle: add test for Issue1704
Original version by Greg Ward.
author | Peter Arrenbrecht <peter.arrenbrecht@gmail.com> |
---|---|
date | Sat, 07 Nov 2009 12:28:31 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-bundle-vs-outgoing Sat Nov 07 12:28:31 2009 +0100 @@ -0,0 +1,84 @@ +#!/bin/sh + +# this structure seems to tickle a bug in bundle's search for +# changesets, so first we have to recreate it +# +# o 8 +# | +# | o 7 +# | | +# | o 6 +# |/| +# o | 5 +# | | +# o | 4 +# | | +# | o 3 +# | | +# | o 2 +# |/ +# o 1 +# | +# o 0 + +mkrev() +{ + revno=$1 + echo "rev $revno" + echo "rev $revno" > foo.txt + hg -q ci -m"rev $revno" +} + +set -e +echo "% setup test repo1" +hg init repo1 +cd repo1 +echo "rev 0" > foo.txt +hg ci -Am"rev 0" +mkrev 1 + +# first branch +mkrev 2 +mkrev 3 + +# back to rev 1 to create second branch +hg up -r1 +mkrev 4 +mkrev 5 + +# merge first branch to second branch +hg up -C -r5 +HGMERGE=internal:local hg merge +echo "merge rev 5, rev 3" > foo.txt +hg ci -m"merge first branch to second branch" + +# one more commit following the merge +mkrev 7 + +# back to "second branch" to make another head +hg up -r5 +mkrev 8 + +echo "[extensions]" >> $HGRCPATH +echo "graphlog=" >> $HGRCPATH + +echo "% the story so far" +hg glog --template "{rev}\n" + +# check that "hg outgoing" really does the right thing +echo "% sanity check of outgoing: expect revs 4 5 6 7 8" +hg clone -r3 . ../repo2 +# this should (and does) report 5 outgoing revisions: 4 5 6 7 8 +hg outgoing --template "{rev}\n" ../repo2 + +echo "% test bundle (destination repo): expect 5 revisions" +# this should bundle the same 5 revisions that outgoing reported, but it +# actually bundles 7 +hg bundle foo.bundle ../repo2 + +echo "% test bundle (base revision): expect 5 revisions" +# this should (and does) give exactly the same result as bundle +# with a destination repo... i.e. it's wrong too +hg bundle --base 3 foo.bundle + +