[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