[PATCH 3 of 4] bundle2.processbundle: let callers request default behavior

Augie Fackler raf at durin42.com
Tue Dec 2 15:38:14 UTC 2014


On Tue, Nov 25, 2014 at 10:26:28AM -0800, Eric Sumner wrote:
> # HG changeset patch
> # User Eric Sumner <ericsumner at fb.com>
> # 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):

I think (but am not sure) that after this patch _notransaction is
unused and could be deleted in a followup.

>      """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.
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list