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
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
cat > $HGTMP/false <<EOF
#!/bin/sh
exit 1
EOF
chmod +x $HGTMP/false
hg init foo
cd foo
echo foo > foo
hg add foo
# mq may keep a reference to the repository so __del__ will not be called
# and .hg/journal.dirstate will not be deleted:
HGEDITOR=$HGTMP/false hg ci
HGEDITOR=$HGTMP/false hg ci
exit 0