changeset 35265:1f30cbac34b6

bundle2: add a 'modes' dictionary to the bundle operation This new attribute allows the codes requesting an unbundling to pass important information to individual part handlers. The current target use case is to allow for receiving 'bookmarks' part without directly updating local repository, but just recording the received data instead. This is necessary for pull where the remote bookmarks are processed locally. I expect the concept to be beneficial to other parts in the future. To clarify the bookmark behavior on pull, the remote bookmark value are not just taken -as-is- into the local repository. There is an extra step to detect bookmark divergence. The remote bookmarks data are stored until this processing happens.
author Boris Feld <boris.feld@octobus.net>
date Tue, 17 Oct 2017 15:39:34 +0200
parents a1e70c1dbec0
children 496154e41968
files mercurial/bundle2.py
diffstat 1 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/bundle2.py	Tue Oct 17 12:38:13 2017 +0200
+++ b/mercurial/bundle2.py	Tue Oct 17 15:39:34 2017 +0200
@@ -301,6 +301,8 @@
         self.captureoutput = captureoutput
         self.hookargs = {}
         self._gettransaction = transactiongetter
+        # carries value that can modify part behavior
+        self.modes = {}
 
     def gettransaction(self):
         transaction = self._gettransaction()