[PATCH [RFC]] push: propagate --new_branch option when pushing subrepos

Mads Kiilerich mads at kiilerich.com
Thu Sep 29 13:09:27 CDT 2011


On 09/29/2011 05:20 PM, Angel Ezquerra wrote:
> # HG changeset patch
> # User Angel Ezquerra<angel.ezquerra at gmail.com>
> # Date 1317309604 -7200
> # Node ID e6eb3657e327c3e60f042f4cdf77cfb90c4735ac
> # Parent  8df4166b6f634b305934fdd49c0e0ae64184d4ed
> push: propagate --new_branch option when pushing subrepos
>
> Up until now the --new_branch option of the push command was ignored when
> pushing subrepos. The result was that it was not possible to push a repo when
> any of its subrepos had a new branch, even if you used the --new_branch option
> of the push command.
>
> In addition the error message was confusing since it showed the following hint:
> "--new_branch hint: use 'hg push --new-branch' to create new remote branches".
> However using the --new_branch flag did not fix the problem, as it was ignored
> when pushing subrepos.
>
> This patch passes the --new_branch flag to every subrepo that is pushed.
>
> Limitations: git subrepos get the new_branch flag, but ignore it.
>
> diff --git a/mercurial/commands.py b/mercurial/commands.py
> --- a/mercurial/commands.py
> +++ b/mercurial/commands.py
> @@ -4077,7 +4077,7 @@
>           c = repo['']
>           subs = c.substate # only repos that are committed
>           for s in sorted(subs):
> -            if not c.sub(s).push(opts.get('force')):
> +            if not c.sub(s).push(opts.get('force'), opts.get('new_branch')):
>                   return False
>       finally:
>           del repo._subtoppath
> diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
> --- a/mercurial/subrepo.py
> +++ b/mercurial/subrepo.py
> @@ -302,7 +302,7 @@
>           """merge currently-saved state with the new state."""
>           raise NotImplementedError
>
> -    def push(self, force):
> +    def push(self, force, newbranch=False):

Why do newbranch have a default value? Is there any cases where it isn't 
and shouldn't be implemented?

/Mads


More information about the Mercurial-devel mailing list