[patch 5/7] Automatic nesting into running transactions in the same repository.
Chris Mason
mason at suse.com
Mon Aug 22 23:33:41 UTC 2005
On Mon, 22 Aug 2005 13:27:52 -0700
Matt Mackall <mpm at selenic.com> wrote:
> On Mon, Aug 22, 2005 at 01:44:39PM -0400, Chris Mason wrote:
> > - return transaction.transaction(self.ui.warn, self.opener,
> > + tr = transaction.transaction(self.ui.warn, self.opener,
> > self.join("journal"), after)
> > + # a weak reference is used to avoid a circular ref
> > + self.transhandle = weakref.ref(tr)
> > + return tr
>
> I've made a great effort to avoid needing to use weakref elsewhere.
> Can we promote the after function to module scope like opener and
> thereby avoid this problem case too?
>
When I relied 100% on after(), I ran into ordering problems between the
dirstate and the transaction abort code. But I'll put some more
thought into it, I didn't realize weakrefs were bad....
> If we must use weakref, I'd prefer to find a way such that it was
> invisible to users of the transaction class, like using a wrapper.
>
ok.
-chris
More information about the Mercurial
mailing list