[PATCH 3 of 6] require: store missing requirement into MissingRequirementError
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sat Jun 18 11:10:01 UTC 2011
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1308390048 -7200
# Node ID d162b12a93d0cd8c1ca0c1fcf391f99e600df41e
# Parent 32b4e7235e553a5444e8e78e9390a4ecc1291586
require: store missing requirement into MissingRequirementError
Store missing requirement into the exception instead of the whole error message.
The error message generation is now made were the exception is catched. This
make raising code simpler and adapting the actual error message to the context.
diff -r 32b4e7235e55 -r d162b12a93d0 mercurial/dispatch.py
--- a/mercurial/dispatch.py Sat Jun 18 11:40:46 2011 +0200
+++ b/mercurial/dispatch.py Sat Jun 18 11:40:48 2011 +0200
@@ -124,7 +124,8 @@
ui.warn(_("hg: %s\n") % inst.args[1])
commands.help_(ui, 'shortlist')
except error.MissingRequirementError, inst:
- ui.warn(_("abort: %s\n" % inst))
+ msg = _("abort: unknown repository format: requires feature '%s'\n")
+ ui.warn(_(msg % inst.missing))
m = _("(see http://mercurial.selenic.com/wiki/RequiresFile for details)\n")
ui.warn(m)
except error.RepoError, inst:
diff -r 32b4e7235e55 -r d162b12a93d0 mercurial/error.py
--- a/mercurial/error.py Sat Jun 18 11:40:46 2011 +0200
+++ b/mercurial/error.py Sat Jun 18 11:40:48 2011 +0200
@@ -61,7 +61,8 @@
class MissingRequirementError(RequirementError):
"""Exception raised if .hg/requires has an unknown entry."""
- pass
+ def __init__(self, missing):
+ self.missing = missing
class LockError(IOError):
def __init__(self, errno, strerror, filename, desc):
diff -r 32b4e7235e55 -r d162b12a93d0 mercurial/scmutil.py
--- a/mercurial/scmutil.py Sat Jun 18 11:40:46 2011 +0200
+++ b/mercurial/scmutil.py Sat Jun 18 11:40:48 2011 +0200
@@ -701,6 +701,5 @@
if not r or not r[0].isalnum():
msg = _(".hg/requires file is corrupt")
raise error.CorruptRequirementError(msg)
- msg = _("unknown repository format: requires feature '%s'") % r
- raise error.MissingRequirementError(msg)
+ raise error.MissingRequirementError(missing=r)
return requirements
More information about the Mercurial-devel
mailing list