[PATCH 3 of 4] shelve: use rollback instead of aborting a current transaction for shelve
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sun Oct 4 16:47:18 CDT 2015
On 10/04/2015 05:44 AM, FUJIWARA Katsunori wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> # Date 1443962009 -32400
> # Sun Oct 04 21:33:29 2015 +0900
> # Node ID e265a8c85c3873815730921ae2d8ca3c6df3b48a
> # Parent ce4ea67c82972f2988e42372cd6443b6c288e1c8
> shelve: use rollback instead of aborting a current transaction for shelve
I'm not sure that I like these one (and the next).
Using rollback means that the transaction is actually commited at some
point. Rolling it back will likely cause cache invalidation issue and
race condition with other reader.
However:
- the current shelve implementation is highly debatable by itself. (we
should probably use a combination of fully in memory commit (not
supported yet) and bundlerepo + merge so I'm not sure your proposal is
notably worse (we are a bit between Scylla and Charybdis here)
- If this is the last blocking bits to get a transactional dirstate, the
drawback at certainly worth it. The current bug associated with the lack
of it have much more user impact.
I need to think about it.
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list