[PATCH 1 of 6] require: subclass RequirementError, distinct corruption from missing requirements
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sat Jun 18 06:09:59 CDT 2011
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1308357820 -7200
# Node ID 66ccbdcb709dc6cc23db7f19d54ebafd7efe103e
# Parent 8f12dac18d13d3cdd105508847fea2aecf88a09e
require: subclass RequirementError, distinct corruption from missing requirements
RequirementError is subclassed by:
* CorruptRequirementError: dedicated to corrupted content,
* MissingRequirementError: dedicated to missing requirements.
Having this distinction will allow improving the way missing requirement are
handled.
diff -r 8f12dac18d13 -r 66ccbdcb709d mercurial/error.py
--- a/mercurial/error.py Sat Jun 18 01:08:54 2011 +0200
+++ b/mercurial/error.py Sat Jun 18 02:43:40 2011 +0200
@@ -52,6 +52,14 @@
pass
class RequirementError(RepoError):
+ """Exception raised if something is wrong with requirement."""
+ pass
+
+class CorruptRequirementError(RequirementError):
+ """Exception raised if .hg/requires seems corrupted."""
+ pass
+
+class MissingRequirementError(RequirementError):
"""Exception raised if .hg/requires has an unknown entry."""
pass
diff -r 8f12dac18d13 -r 66ccbdcb709d mercurial/scmutil.py
--- a/mercurial/scmutil.py Sat Jun 18 01:08:54 2011 +0200
+++ b/mercurial/scmutil.py Sat Jun 18 02:43:40 2011 +0200
@@ -699,7 +699,9 @@
for r in requirements:
if r not in supported:
if not r or not r[0].isalnum():
- raise error.RequirementError(_(".hg/requires file is corrupt"))
- raise error.RequirementError(_("unknown repository format: "
- "requires feature '%s' (upgrade Mercurial)") % r)
+ msg = _(".hg/requires file is corrupt")
+ raise error.CorruptRequirementError(msg)
+ msg = _("unknown repository format: requires feature '%s' "
+ "(upgrade Mercurial)") % r
+ raise error.MissingRequirementError(msg)
return requirements
More information about the Mercurial-devel
mailing list