[PATCH 0 of 3] Transactional support for rebase/strip to avoid permanent repository corruptions
Benoit Boissinot
bboissin at gmail.com
Wed Apr 15 17:46:38 CDT 2009
On Wed, Apr 15, 2009 at 10:34:29PM +0200, Henrik Stuart wrote:
[Thanks for the detailed explaination, I'll have a closer look at the patches later]
> Furthermore, since localrepository.transaction defines an "after" function
> that renames journal* to undo*, and if the second call to transaction
> returns the first transaction, then the "after" function will be called
> again, but now there is suddenly no journal file(s) to rename anymore.
> This is solved by, in addition to querying whether there is a weakref, to
> see whether the transaction is running - if it is not, a new transaction
> is returned.
>
> The alternative would have been to delete the transaction inside repair.strip,
> but this would mean that we would never allow strip to be called nested
> inside another transaction, something that we were not comfortable with
> just decreeing (addchangegroup has this limit currently, but is it
> intentional?).
I looked at the nesting transaction stuff the other day, and I think the
only use of the nesting of in mq.
Should we try to avoid it?
regards,
Benoit
--
:wq
More information about the Mercurial-devel
mailing list