Catch urllib's HTTPException and give a meaningful error message to the user.
Usually urllib only throws HTTPError exceptions, which already are a subclass
of IOError.
--- a/mercurial/httprepo.py Mon May 15 11:16:32 2006 -0700
+++ b/mercurial/httprepo.py Tue May 16 09:35:38 2006 +0200
@@ -103,7 +103,10 @@
q.update(args)
qs = urllib.urlencode(q)
cu = "%s?%s" % (self.url, qs)
- resp = urllib2.urlopen(cu)
+ try:
+ resp = urllib2.urlopen(cu)
+ except httplib.HTTPException, inst:
+ raise IOError(None, _('http error while sending %s command') % cmd)
proto = resp.headers['content-type']
# accept old "text/plain" and "application/hg-changegroup" for now