transaction: introduce "changes" dictionary to precisely track updates
authorPierre-Yves David <pierre-yves.david@ens-lyon.org>
Tue, 02 May 2017 18:31:18 +0200
changeset 32261 976681123416
parent 32260 d0d9a4fca59b
child 32262 85ef5a073114
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.
mercurial/transaction.py
--- a/mercurial/transaction.py	Thu May 11 10:50:05 2017 -0700
+++ b/mercurial/transaction.py	Tue May 02 18:31:18 2017 +0200
@@ -137,6 +137,10 @@
             releasefn = lambda tr, success: None
         self.releasefn = releasefn
 
+        # A dict dedicated to precisely tracking the changes introduced in the
+        # transaction.
+        self.changes = {}
+
         # a dict of arguments to be passed to hooks
         self.hookargs = {}
         self.file = opener.open(self.journal, "w")