Mercurial > hg
view tests/test-bundle-vs-outgoing @ 10396:65a90c8e11ee
prepush: add more precise error messages
Part of the patch is from timeless@mozdev.org
- indicate the branch name where there are multiple heads
- give better advice when hitting a possible race, where new heads are added
between discovery and the call to branchmap(). In that case, asking the user
to merge isn't helpful, since only remote has the changes.
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Mon, 08 Feb 2010 19:44:04 +0100 |
parents | 7d2e9121ef4f |
children |
line wrap: on
line source
#!/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