|
|
#!/bin/sh
|
|
|
|
|
|
branchcache=.hg/branchheads.cache
|
|
|
|
|
|
hg init t
|
|
|
cd t
|
|
|
hg branches
|
|
|
|
|
|
echo foo > a
|
|
|
hg add a
|
|
|
hg ci -m "initial" -d "1000000 0"
|
|
|
hg branch foo
|
|
|
hg branch
|
|
|
hg ci -m "add branch name" -d "1000000 0"
|
|
|
hg branch bar
|
|
|
hg ci -m "change branch name" -d "1000000 0"
|
|
|
echo % branch shadowing
|
|
|
hg branch default
|
|
|
hg branch -f default
|
|
|
hg ci -m "clear branch name" -d "1000000 0"
|
|
|
|
|
|
echo % there should be only one default branch head
|
|
|
hg heads .
|
|
|
|
|
|
hg co foo
|
|
|
hg branch
|
|
|
echo bleah > a
|
|
|
hg ci -m "modify a branch" -d "1000000 0"
|
|
|
|
|
|
hg merge default
|
|
|
hg branch
|
|
|
hg ci -m "merge" -d "1000000 0"
|
|
|
hg log
|
|
|
|
|
|
hg branches
|
|
|
hg branches -q
|
|
|
|
|
|
echo % test for invalid branch cache
|
|
|
hg rollback
|
|
|
cp $branchcache .hg/bc-invalid
|
|
|
hg log -r foo
|
|
|
cp .hg/bc-invalid $branchcache
|
|
|
hg --debug log -r foo
|
|
|
rm $branchcache
|
|
|
echo corrupted > $branchcache
|
|
|
hg log -qr foo
|
|
|
cat $branchcache
|
|
|
|
|
|
echo % push should update the branch cache
|
|
|
hg init ../target
|
|
|
echo % pushing just rev 0
|
|
|
hg push -qr 0 ../target
|
|
|
cat ../target/$branchcache
|
|
|
echo % pushing everything
|
|
|
hg push -qf ../target
|
|
|
cat ../target/$branchcache
|
|
|
|
|
|
echo % update with no arguments: tipmost revision of the current branch
|
|
|
hg up -q -C 0
|
|
|
hg up -q
|
|
|
hg id
|
|
|
hg up -q 1
|
|
|
hg up -q
|
|
|
hg id
|
|
|
hg branch foobar
|
|
|
hg up
|
|
|
|
|
|
echo % fastforward merge
|
|
|
hg branch ff
|
|
|
echo ff > ff
|
|
|
hg ci -Am'fast forward' -d '1000000 0'
|
|
|
hg up foo
|
|
|
hg merge ff
|
|
|
hg branch
|
|
|
hg commit -m'Merge ff into foo' -d '1000000 0'
|
|
|
hg parents
|
|
|
hg manifest
|
|
|
|
|
|
echo % test merging, add 3 default heads and one test head
|
|
|
cd ..
|
|
|
hg init merges
|
|
|
cd merges
|
|
|
echo a > a
|
|
|
hg ci -Ama
|
|
|
|
|
|
echo b > b
|
|
|
hg ci -Amb
|
|
|
|
|
|
hg up 0
|
|
|
echo c > c
|
|
|
hg ci -Amc
|
|
|
|
|
|
hg up 0
|
|
|
echo d > d
|
|
|
hg ci -Amd
|
|
|
|
|
|
hg up 0
|
|
|
hg branch test
|
|
|
echo e >> e
|
|
|
hg ci -Ame
|
|
|
|
|
|
hg log
|
|
|
|
|
|
echo % implicit merge with test branch as parent
|
|
|
hg merge
|
|
|
hg up -C default
|
|
|
echo % implicit merge with default branch as parent
|
|
|
hg merge
|
|
|
echo % 3 branch heads, explicit merge required
|
|
|
hg merge 2
|
|
|
hg ci -m merge
|
|
|
echo % 2 branch heads, implicit merge works
|
|
|
hg merge
|
|
|
|