From patchwork Tue Nov 25 18:26:28 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3,of,4] bundle2.processbundle: let callers request default behavior From: Eric Sumner X-Patchwork-Id: 6857 Message-Id: <46994128747aa4bc3057.1416939988@dev911.prn1.facebook.com> To: Date: Tue, 25 Nov 2014 10:26:28 -0800 # HG changeset patch # User Eric Sumner # Date 1416873884 28800 # Mon Nov 24 16:04:44 2014 -0800 # Node ID 46994128747aa4bc3057c7fbdbe19f4734cd48ab # Parent ed01cf6d09c8682dfd8292f1333bce11be02bc1f 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 @@ 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 @@ 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.