make revlog.addgroup pass its file handles to addrevision
This should fix issue255.
It looks like the problem there happens when addgroup calls addrevision
to add a full revision, and addrevision decides to split the index file
into a .i/.d pair. Since addgroup has an open file handle for the
index file, the renaming of the new .i file to its final name fails on
windows.
#!/bin/sh
#
# test for branch handling
#
# XXX: need more tests
hg init
echo a > a
echo b > b
hg ci -A -m 0 -d "1000000 0"
echo aa > a
echo bb > b
hg ci -m 1 -d "1000000 0"
hg tag -l foo
hg update 0
hg parents -b
# test update
hg update -b foo
hg parents
# test merge
hg update 0
echo c > c
hg ci -A -m 0.0 -d "1000000 0"
hg merge -b foo
hg parents -b
# re-test with more branches
hg update -C 0
echo d > d
hg ci -A -m 0.0 -d "1000000 0"
hg merge -b foo
hg parents -b