localrepo: refactor prepush logic
Simplifies the prepush check logic and makes it a lot more direct and
comprehensible. Instead of comparing the total local vs. remote head count, it
compares the number of new vs. removed heads.
#!/bin/sh
# N.B. bzr 1.13 has a bug that breaks this test. If you see this
# test fail, check your bzr version. Upgrading to bzr 1.13.1
# should fix it.
. "$TESTDIR/bzr-definitions"
echo % test multiple merges at once
mkdir test-multimerge
cd test-multimerge
bzr init -q source
cd source
echo content > file
bzr add -q file
bzr commit -q -m 'Initial add'
cd ..
bzr branch -q source source-branch1
cd source-branch1
echo morecontent >> file
echo evenmorecontent > file-branch1
bzr add -q file-branch1
bzr commit -q -m 'Added branch1 file'
cd ../source
sleep 1
echo content > file-parent
bzr add -q file-parent
bzr commit -q -m 'Added parent file'
cd ..
bzr branch -q source source-branch2
cd source-branch2
echo somecontent > file-branch2
bzr add -q file-branch2
bzr commit -q -m 'Added brach2 file'
sleep 1
cd ../source
bzr merge -q ../source-branch1
bzr merge -q --force ../source-branch2
bzr commit -q -m 'Merged branches'
cd ..
hg convert --datesort source source-hg
glog -R source-hg
manifest source-hg tip