Mercurial > public > mercurial-scm > hg-stable
diff mercurial/hg.py @ 753:8760d0c83b9b
Check protocol versions
This also allows the old unidentified protocol
author | mpm@selenic.com |
---|---|
date | Thu, 21 Jul 2005 18:20:13 -0500 |
parents | c693eafd5967 |
children | eea96285cbf9 |
line wrap: on
line diff
--- a/mercurial/hg.py Thu Jul 21 18:19:20 2005 -0500 +++ b/mercurial/hg.py Thu Jul 21 18:20:13 2005 -0500 @@ -1744,11 +1744,21 @@ qs = urllib.urlencode(q) cu = "%s?%s" % (self.url, qs) resp = urllib2.urlopen(cu) + proto = resp.headers['content-type'] - if not resp.headers['content-type'].startswith('application/hg'): + # accept old "text/plain" and "application/hg-changegroup" for now + if not proto.startswith('application/mercurial') and \ + not proto.startswith('text/plain') and \ + not proto.startswith('application/hg-changegroup'): raise RepoError("'%s' does not appear to be an hg repository" % self.url) + if proto.startswith('application/mercurial'): + version = proto[22:] + if float(version) > 0.1: + raise RepoError("'%s' uses newer protocol %s" % + (self.url, version)) + return resp def heads(self):