transactions: avoid late tear-down (issue641)
We use weak references (ugh) to avoid having to manually delete
transaction references out of each call frame when an exception occurs.
#!/bin/sh
# a test for issue586
hg init a
cd a
echo a > a
hg ci -Ama
hg init ../b
cd ../b
echo b > b
hg ci -Amb
hg pull -f ../a
hg merge
hg rm -f a
hg ci -Amc
hg st -A