# HG changeset patch # User Henrik Stuart # Date 1239818062 -7200 # Node ID ecf7795479d519d9abf217956d418c54239e11f6 # Parent 9f14b66830a81a60ca980feb1d0d625d09b88a1a transaction: support multiple, separate transactions Solves that committed (closed) transactions may linger and be returned on subsequent transaction calls, even though a new transaction should be made, rather than a new nested transaction. This also fixes a race condition with the use of weakref. diff -r 9f14b66830a8 -r ecf7795479d5 mercurial/localrepo.py --- a/mercurial/localrepo.py Thu Apr 16 15:41:25 2009 +0200 +++ b/mercurial/localrepo.py Wed Apr 15 19:54:22 2009 +0200 @@ -593,8 +593,9 @@ return self._filter("decode", filename, data) def transaction(self): - if self._transref and self._transref(): - return self._transref().nest() + tr = self._transref and self._transref() or None + if tr and tr.running(): + return tr.nest() # abort here if the journal already exists if os.path.exists(self.sjoin("journal")):