view tests/test-pull-branch @ 7654:816b708f23af

store all heads of a branch in the branch cache All heads of branches will be stored in a new cache file 'branchheads.cache' within the .hg directory. The old 'branch.cache' file from older versions will be ignored. The new cache contents are formatted line-by-line as '{node} {branchtag}\n'. This is the same as the previous format. Now, every head is recorded in an oldest -> tipmost order. The localrepo.branchheads function is reworked to use the data from the cache.
author John Mulligan <phlogistonjohn@asynchrono.us>
date Wed, 14 Jan 2009 21:47:38 -0500
parents e17dbf140035
children
line wrap: on
line source

#!/bin/sh

hg init t
cd t
echo 1 > foo
hg ci -Am1 # 0
hg branch branchA
echo a1 > foo
hg ci -ma1 # 1

cd ..
hg init tt
cd tt
hg pull ../t
hg up branchA

cd ../t
echo a2 > foo
hg ci -ma2 # 2
echo % create branch B
hg up 0
hg branch branchB
echo b1 > foo
hg ci -mb1 # 3

cd ../tt
echo % a new branch is there
hg pull -u ../t

echo % develop both branch
cd ../t
hg up branchA
echo a3 > foo
hg ci -ma3 # 4
hg up branchB
echo b2 > foo
hg ci -mb2 # 5

cd ../tt
echo % should succeed, no new heads
hg pull -u ../t

echo % add an head on other branch
cd ../t
hg up branchA
echo a4 > foo
hg ci -ma4 # 6
hg up branchB
echo b3.1 > foo
hg ci -m b3.1 # 7
hg up 5
echo b3.2 > foo
hg ci -m b3.2 # 8

cd ../tt
echo % should succeed only one head on our branch
hg pull -u ../t

cd ../t
hg up -C branchA
echo a5.1 > foo
hg ci -ma5.1 # 9
hg up 6
echo a5.2 > foo
hg ci -ma5.2 # 10
hg up 7
echo b4.1 > foo
hg ci -m b4.1 # 11
hg up -C 8
echo b4.2 > foo
hg ci -m b4.2 # 12

cd ../tt
echo % should fail new head in our branch
hg pull -u ../t