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
mkfifo p
hg serve --stdio < p &
P=$!
(echo lock; echo addchangegroup; sleep 5) > p &
Q=$!
sleep 3
kill -HUP $P
wait
echo .hg/* .hg/store/*