[PATCH 1 of 8] transaction: introduce "changes" dictionary to precisely track updates

Yuya Nishihara yuya at tcha.org
Wed May 3 03:51:54 EDT 2017


On Wed, 03 May 2017 01:43:38 +0200, Pierre-Yves David wrote:
> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
> # Date 1493742678 -7200
> #      Tue May 02 18:31:18 2017 +0200
> # Branch stable
> # Node ID 6697da7c4eab3fbe3588a2f91fa3f99b16f808ac
> # Parent  fbb5f4bf94928b98fa87871e84bb2ef972ec2d51
> # EXP-Topic obscache
> # Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
> #              hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r 6697da7c4eab
> transaction: introduce "changes" dictionary to precisely track updates
> 
> The transaction is already tracking some data intended for hooks (in
> 'hookargs'). However, that information is minimal as we optimise for
> passing data to other processes through environment variables. There are
> multiple places were we could use more complete and lower level
> information locally (eg: cache update, better report of changes to
> hooks, etc...).
> 
> For this purpose we introduces a 'changes' dictionary on the
> transaction.  It is intended to track every changes happening to the
> repository (eg: new revs, bookmarks move, phases move, obs-markers,
> etc).
> 
> For now we just adds the 'changes' dictionary. We'll adds more tracking
> and usages over time.
> 
> diff --git a/mercurial/transaction.py b/mercurial/transaction.py
> --- a/mercurial/transaction.py
> +++ b/mercurial/transaction.py
> @@ -137,6 +137,10 @@ class transaction(object):
>              releasefn = lambda tr, success: None
>          self.releasefn = releasefn
>  
> +        # A dict dedicated to precisely tracking the changes introduced in the
> +        # transaction.
> +        self.changes = {}

I'm not sure if it's good idea to add more free-form dict to the transaction
class, since that would make code less manageable in general.

Other than that, the change looks good to me.


More information about the Mercurial-devel mailing list