bundle2: add the capability to store hookargs on bundle operation object
There are extensions like pushrebase, pushvars which run hooks on a server
before taking the lock. Since the lock is not taken, transaction is not there,
so the hookargs can't be stored on the transaction. Adding hooksargs to bundle
operation object will help in running hooks before taking the lock.
This is a part of moving fb's extension bundle2hooks to core.
Differential Revision: https://phab.mercurial-scm.org/D208
--- a/mercurial/bundle2.py Thu Jul 20 01:30:41 2017 -0700
+++ b/mercurial/bundle2.py Wed Aug 02 03:08:42 2017 +0530
@@ -299,6 +299,10 @@
self.gettransaction = transactiongetter
self.reply = None
self.captureoutput = captureoutput
+ self.hookargs = {}
+
+ def addhookargs(self, hookargs):
+ self.hookargs.update(hookargs)
class TransactionUnavailable(RuntimeError):
pass