Mercurial > hg
diff mercurial/statichttprepo.py @ 6028:6605a03cbf87
make static-http work with empty repos (issue965)
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Fri, 08 Feb 2008 11:50:37 +0100 |
parents | 639935f2e63a |
children | e75aab656f46 |
line wrap: on
line diff
--- a/mercurial/statichttprepo.py Wed Feb 06 23:09:13 2008 +0100 +++ b/mercurial/statichttprepo.py Fri Feb 08 11:50:37 2008 +0100 @@ -9,14 +9,16 @@ from i18n import _ import changelog, filelog, httprangereader -import repo, localrepo, manifest, os, urllib, urllib2, util +import repo, localrepo, manifest, util +import urllib, urllib2, errno class rangereader(httprangereader.httprangereader): def read(self, size=None): try: return httprangereader.httprangereader.read(self, size) except urllib2.HTTPError, inst: - raise IOError(None, inst) + num = inst.code == 404 and errno.ENOENT or None + raise IOError(num, inst) except urllib2.URLError, inst: raise IOError(None, inst.reason[1]) @@ -35,11 +37,17 @@ self.path = path.rstrip('/') + "/.hg" self.opener = opener(self.path) + # find requirements try: requirements = self.opener("requires").read().splitlines() - except IOError: - requirements = [] + except IOError, inst: + if inst.errno == errno.ENOENT: + msg = _("'%s' does not appear to be an hg repository") % path + raise repo.RepoError(msg) + else: + requirements = [] + # check them for r in requirements: if r not in self.supported: