Mercurial > hg
view mercurial/statichttprepo.py @ 2019:ced2d3620f95
add merge command. means same thing as "update -m".
repo.addchangegroup method now returns number of heads modified and added,
so command line can tell whether update or merge needed. this makes
tiny change to ssh wire protocol, but change is backwards compatible.
pull command now returns 0 if no changes to pull.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Wed, 29 Mar 2006 10:27:16 -0800 |
parents | 0b3f4be5c5bf |
children | 74d3f5336b66 |
line wrap: on
line source
# statichttprepo.py - simple http repository class for mercurial # # This provides read-only repo access to repositories exported via static http # # Copyright 2005 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. from demandload import demandload demandload(globals(), "changelog filelog httprangereader") demandload(globals(), "localrepo manifest os urllib urllib2") class rangereader(httprangereader.httprangereader): def read(self, size=None): try: return httprangereader.httprangereader.read(self, size) except urllib2.HTTPError, inst: raise IOError(None, inst) except urllib2.URLError, inst: raise IOError(None, inst.reason[1]) def opener(base): """return a function that opens files over http""" p = base def o(path, mode="r"): f = os.path.join(p, urllib.quote(path)) return rangereader(f) return o class statichttprepository(localrepo.localrepository): def __init__(self, ui, path): self.path = (path + "/.hg") self.ui = ui self.opener = opener(self.path) self.manifest = manifest.manifest(self.opener) self.changelog = changelog.changelog(self.opener) self.tagscache = None self.nodetagscache = None self.encodepats = None self.decodepats = None def dev(self): return -1 def local(self): return False