[PATCH 1 of 2] phases: rewrite "immutable changeset" to "public changeset"

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon Jun 1 14:01:31 CDT 2015



On 06/01/2015 11:18 AM, Jordi GutiƩrrez Hermoso wrote:
> # HG changeset patch
> # User Jordi GutiƩrrez Hermoso <jordigh at octave.org>
> # Date 1433181938 0
> #      Mon Jun 01 18:05:38 2015 +0000
> # Node ID 6c075f1d088b9ec99876f109c4a51b79c0fbe26c
> # Parent  4cc3fb23881d9abc7745501ef0d777e5976ddb52
> phases: rewrite "immutable changeset" to "public changeset"
>
> The phrase "cannot edit immutable changeset" is kind of tautological.
> Of course unchangeable things can't be changed. We instead mention
> "public" and provide a hint so that we can point to the actual
> problem. Even in cases where some operation other than edition cannot
> be performed, "public" gives the root cause that results in the
> "immutable" effect.
>
> There is a precedent for saying "public" instead of "immutable", for
> example, in `hg commit --amend`.

I think public is a bit too broad and will confused newcomer. '...public 
phase changeset...'. '...changeset in the public phases..'

'changeset in public phase are immutable' ?

>
> diff --git a/hgext/histedit.py b/hgext/histedit.py
> --- a/hgext/histedit.py
> +++ b/hgext/histedit.py
> @@ -928,7 +928,7 @@ def between(repo, old, new, keep):
>               raise util.Abort(_('cannot edit history that contains merges'))
>           root = ctxs[0] # list is already sorted by repo.set
>           if not root.mutable():
> -            raise util.Abort(_('cannot edit immutable changeset: %s') % root)
> +            raise util.Abort(_('cannot edit public changeset: %s') % root)
>       return [c.node() for c in ctxs]
>
>   def makedesc(repo, action, rev):
> diff --git a/hgext/mq.py b/hgext/mq.py
> --- a/hgext/mq.py
> +++ b/hgext/mq.py
> @@ -1526,7 +1526,7 @@ class queue(object):
>                                      "managed by this patch queue"))
>               if not repo[self.applied[-1].node].mutable():
>                   raise util.Abort(
> -                    _("popping would remove an immutable revision"),
> +                    _("popping would remove a public revision"),
>                       hint=_('see "hg help phases" for details'))
>
>               # we know there are no local changes, so we can make a simplified
> @@ -1597,7 +1597,7 @@ class queue(object):
>               if repo.changelog.heads(top) != [top]:
>                   raise util.Abort(_("cannot refresh a revision with children"))
>               if not repo[top].mutable():
> -                raise util.Abort(_("cannot refresh immutable revision"),
> +                raise util.Abort(_("cannot refresh public revision"),
>                                    hint=_('see "hg help phases" for details'))
>
>               cparents = repo.changelog.parents(top)
> diff --git a/hgext/rebase.py b/hgext/rebase.py
> --- a/hgext/rebase.py
> +++ b/hgext/rebase.py
> @@ -330,7 +330,7 @@ def rebase(ui, repo, **opts):
>
>               root = min(rebaseset)
>               if not keepf and not repo[root].mutable():
> -                raise util.Abort(_("can't rebase immutable changeset %s")
> +                raise util.Abort(_("can't rebase public changeset %s")
>                                    % repo[root],
>                                    hint=_('see "hg help phases" for details'))
>
> @@ -869,7 +869,7 @@ def abort(repo, originalwd, target, stat
>       immutable = [d for d in dstates if not repo[d].mutable()]
>       cleanup = True
>       if immutable:
> -        repo.ui.warn(_("warning: can't clean up immutable changesets %s\n")
> +        repo.ui.warn(_("warning: can't clean up public changesets %s\n")
>                        % ', '.join(str(repo[r]) for r in immutable),
>                        hint=_('see "hg help phases" for details'))
>           cleanup = False
> diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
> --- a/mercurial/obsolete.py
> +++ b/mercurial/obsolete.py
> @@ -1214,7 +1214,7 @@ def createmarkers(repo, relations, flag=
>                   localmetadata.update(rel[2])
>
>               if not prec.mutable():
> -                raise util.Abort("cannot obsolete immutable changeset: %s"
> +                raise util.Abort("cannot obsolete public changeset: %s"
>                                    % prec)
>               nprec = prec.node()
>               nsucs = tuple(s.node() for s in sucs)
> diff --git a/tests/test-histedit-obsolete.t b/tests/test-histedit-obsolete.t
> --- a/tests/test-histedit-obsolete.t
> +++ b/tests/test-histedit-obsolete.t
> @@ -219,7 +219,7 @@ Check that histedit respect immutability
>     o  0:cb9a9f314b8b (public) a
>
>     $ hg histedit -r '.~2'
> -  abort: cannot edit immutable changeset: cb9a9f314b8b
> +  abort: cannot edit public changeset: cb9a9f314b8b
>     [255]
>
>
> diff --git a/tests/test-mq-safety.t b/tests/test-mq-safety.t
> --- a/tests/test-mq-safety.t
> +++ b/tests/test-mq-safety.t
> @@ -25,17 +25,17 @@ Try to operate on public mq changeset
>     $ hg phase --public qbase
>     $ echo babar >> foo
>     $ hg qref
> -  abort: cannot refresh immutable revision
> +  abort: cannot refresh public revision
>     (see "hg help phases" for details)
>     [255]
>     $ hg revert -a
>     reverting foo
>     $ hg qpop
> -  abort: popping would remove an immutable revision
> +  abort: popping would remove a public revision
>     (see "hg help phases" for details)
>     [255]
>     $ hg qfold bar
> -  abort: cannot refresh immutable revision
> +  abort: cannot refresh public revision
>     (see "hg help phases" for details)
>     [255]
>     $ hg revert -a
> diff --git a/tests/test-rebase-interruptions.t b/tests/test-rebase-interruptions.t
> --- a/tests/test-rebase-interruptions.t
> +++ b/tests/test-rebase-interruptions.t
> @@ -258,7 +258,7 @@ Change phase on B and B'
>   Abort the rebasing:
>
>     $ hg rebase --abort
> -  warning: can't clean up immutable changesets 45396c49d53b
> +  warning: can't clean up public changesets 45396c49d53b
>     rebase aborted
>
>     $ hg tglogp
> diff --git a/tests/test-rebase-scenario-global.t b/tests/test-rebase-scenario-global.t
> --- a/tests/test-rebase-scenario-global.t
> +++ b/tests/test-rebase-scenario-global.t
> @@ -308,7 +308,7 @@ Check rebasing public changeset
>     nothing to rebase
>     [1]
>     $ hg rebase -d 5 -b 6
> -  abort: can't rebase immutable changeset e1c4361dd923
> +  abort: can't rebase public changeset e1c4361dd923
>     (see "hg help phases" for details)
>     [255]
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel
>

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list