Mercurial > hg
changeset 26683:634666c48b7d
update: introduce a 'UpdateAbort' exception
The 'postincoming' function used by 'hg pull --update' and 'hg unbundle' is
catching 'Abort' exceptions to intercept failed update. This feel a bit too
wide to me, so I'm introducing a more precise exception to specify update
destination issues.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 05 Oct 2015 04:26:26 -0700 |
parents | 08b068240a1a |
children | 74ff350c208c |
files | mercurial/commands.py mercurial/destutil.py mercurial/error.py |
diffstat | 3 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Mon Oct 05 21:42:09 2015 -0700 +++ b/mercurial/commands.py Mon Oct 05 04:26:26 2015 -0700 @@ -5196,7 +5196,7 @@ updata = destutil.destupdate(repo) checkout, movemarkfrom, brev = updata ret = hg.update(repo, checkout) - except error.Abort as inst: + except error.UpdateAbort as inst: ui.warn(_("not updating: %s\n") % str(inst)) if inst.hint: ui.warn(_("(%s)\n") % inst.hint)
--- a/mercurial/destutil.py Mon Oct 05 21:42:09 2015 -0700 +++ b/mercurial/destutil.py Mon Oct 05 04:26:26 2015 -0700 @@ -84,10 +84,10 @@ msg = _("uncommitted changes") hint = _("commit and merge, or update --clean to" " discard changes") - raise error.Abort(msg, hint=hint) + raise error.UpdateAbort(msg, hint=hint) elif not check: # destination is not a descendant. msg = _("not a linear update") hint = _("merge or update --check to force update") - raise error.Abort(msg, hint=hint) + raise error.UpdateAbort(msg, hint=hint) return rev, movemark, activemark
--- a/mercurial/error.py Mon Oct 05 21:42:09 2015 -0700 +++ b/mercurial/error.py Mon Oct 05 04:26:26 2015 -0700 @@ -66,6 +66,9 @@ class ConfigError(Abort): """Exception raised when parsing config files""" +class UpdateAbort(Abort): + """Raised when an update is aborted for destination issue""" + class OutOfBandError(Exception): """Exception raised when a remote repo reports failure"""