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 a > a
hg ci -Am t
hg mv a b
hg ci -Am t1
hg debugrename b
hg mv b a
hg ci -Am t2
hg debugrename a
echo % test with --rev
hg debugrename --rev 1 b