[PATCH V2] subrepo: append subrepo path to subrepo push error messages
Mads Kiilerich
mads at kiilerich.com
Sun Dec 16 01:57:09 UTC 2012
Angel Ezquerra wrote, On 12/16/2012 01:29 AM:
> # HG changeset patch
> # User Angel Ezquerra <angel.ezquerra at gmail.com>
> # Date 1355438273 -3600
> # Node ID cec32425a026c4aeb9a6495086b1a1fbe916be24
> # Parent 34a1a639d8358e43f4bcba7b0cff19f4e4e6958d
> subrepo: append subrepo path to subrepo push error messages
>
> This change appends the subrepo path to subrepo push errors. That is, when there
> is an error pushing a subrepo, rather than displaying:
>
> pushing subrepo MYSUBREPO to PATH
> searching for changes
> abort: push creates new remote head HEADHASH!
> hint: did you forget to merge? use push -f to force
>
> mercurial will show:
>
> pushing subrepo MYSUBREPO to PATH
> searching for changes
> abort: push creates new remote head HEADHASH! (on subrepo MYSUBREPO)
> hint: did you forget to merge? use push -f to force
>
> The rationale for this change is that the current error messages make it hard
> for TortoiseHg (and similar tools) to tell the user which subrepo caused the
> push failure.
>
> Note that I have also updated test-subrepo.t to reflect this change. The test
> passes on windows.
>
> diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
> --- a/mercurial/subrepo.py
> +++ b/mercurial/subrepo.py
> @@ -567,7 +567,12 @@
> self._repo.ui.status(_('pushing subrepo %s to %s\n') %
> (subrelpath(self), dsturl))
> other = hg.peer(self._repo, {'ssh': ssh}, dsturl)
> - return self._repo.push(other, force, newbranch=newbranch)
> + try:
> + res = self._repo.push(other, force, newbranch=newbranch)
> + except error.Abort, ex:
> + errormsg = ex.message + (' (on subrepo %s)' % subrelpath(self))
The message should be marked up for localization.
I also wonder ... I assume a lot of other commands and exceptions from
subrepo handling have the same issue. They should perhaps be solved
while we are at it and with the same method. A decorator could perhaps
be such a more generic method.decorator.
Or is push more important than other commands, making this the only fix
of this kind that is necessary?
/Mads
/Mads
More information about the Mercurial-devel
mailing list