[PATCH] rebase: abort if *any* commit in rebase set is public

Yuya Nishihara yuya at tcha.org
Sat Mar 11 14:56:58 EST 2017


On Sat, 11 Mar 2017 10:47:25 -0800, Martin von Zweigbergk via Mercurial-devel wrote:
> # HG changeset patch
> # User Martin von Zweigbergk <martinvonz at google.com>
> # Date 1489257344 28800
> #      Sat Mar 11 10:35:44 2017 -0800
> # Node ID de5616a5d81c49449fdebc80af76b15ed5adc795
> # Parent  c134a33b1d73896a616475127797ad7fcfa0608d
> rebase: abort if *any* commit in rebase set is public

Good catch. Queued, thanks.

> --- a/hgext/rebase.py	Wed Mar 01 16:19:41 2017 -0800
> +++ b/hgext/rebase.py	Sat Mar 11 10:35:44 2017 -0800
> @@ -326,11 +326,11 @@
>              self.ui.status(_('nothing to rebase\n'))
>              return _nothingtorebase()
>  
> -        root = min(rebaseset)
> -        if not self.keepf and not self.repo[root].mutable():
> -            raise error.Abort(_("can't rebase public changeset %s")
> -                             % self.repo[root],
> -                             hint=_("see 'hg help phases' for details"))
> +        for root in self.repo.set('roots(%ld)', rebaseset):
> +            if not self.keepf and not self.repo[root].mutable():
> +                raise error.Abort(_("can't rebase public changeset %s")
> +                                 % self.repo[root],
> +                                 hint=_("see 'hg help phases' for details"))

repo.set() yields context objects, so repo[root] isn't necessary. Fixed in
flight.


More information about the Mercurial-devel mailing list