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
hg init
echo This is file a1 > a
hg add a
hg commit -m "commit #0" -d "1000000 0"
echo This is file b1 > b
hg add b
hg commit -m "commit #1" -d "1000000 0"
hg update 0
echo This is file c1 > c
hg add c
hg commit -m "commit #2" -d "1000000 0"
hg merge 1
rm b
echo This is file c22 > c
hg commit -m "commit #3" -d "1000000 0"