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 dir
cd dir
echo bleh > bar
hg add bar
hg ci -m 'add bar'
hg cp bar foo
echo >> bar
hg ci -m 'cp bar foo; change bar'
hg debugrename foo
hg debugindex .hg/store/data/bar.i