# HG changeset patch # User Eric Sumner # Date 2014-11-25 00:04:44 # Node ID 6e0ecb9a2e19e07a2f81f3ba77ff070e95f6d45a # Parent 94e2862dbcfb0f26ade829dc6df7d7d60e14aa10 bundle2.processbundle: let callers request default behavior This patch series is intended to allow bundle2 push reply part handlers to make changes to the local repository; it has been developed in parallel with an extension that allows the server to rebase incoming changesets while applying them. The default transaction getter for processbundle is a private function that raises an exception; this diff lets calling code pass None as the transaction getter to explicitly request this default behavior. The next diff will check a config option to determine whether to provide a transaction to the reply bundle processor. If one shouldn't be provided, the code needs a way to specify that the default behavior should be used. diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py --- a/mercurial/bundle2.py +++ b/mercurial/bundle2.py @@ -277,7 +277,7 @@ def _notransaction(): to be created""" raise TransactionUnavailable() -def processbundle(repo, unbundler, transactiongetter=_notransaction): +def processbundle(repo, unbundler, transactiongetter=None): """This function process a bundle, apply effect to/from a repo It iterates over each part then searches for and uses the proper handling @@ -288,6 +288,8 @@ def processbundle(repo, unbundler, trans Unknown Mandatory part will abort the process. """ + if transactiongetter is None: + transactiongetter = _notransaction op = bundleoperation(repo, transactiongetter) # todo: # - replace this is a init function soon.