comparison mercurial/statichttprepo.py @ 1101:2cf5c8a4eae5

Separate out old-http support - create new statichttprepo class - pull remote bits out of localrepo - pull remote bits out of util.opener - switch hg.repository to use statichttprepo
author mpm@selenic.com
date Sat, 27 Aug 2005 16:28:53 -0700
parents
children 57220daf40e9
comparison
equal deleted inserted replaced
1100:d6b6a15cc7c6 1101:2cf5c8a4eae5
1 # statichttprepo.py - simple http repository class for mercurial
2 #
3 # This provides read-only repo access to repositories exported via static http
4 #
5 # Copyright 2005 Matt Mackall <mpm@selenic.com>
6 #
7 # This software may be used and distributed according to the terms
8 # of the GNU General Public License, incorporated herein by reference.
9
10 import os, urllib
11 import localrepo, httprangereader, filelog, manifest, changelog
12
13 def opener(base):
14 """return a function that opens files over http"""
15 p = base
16 def o(path, mode="r"):
17 f = os.path.join(p, urllib.quote(path))
18 return httprangereader.httprangereader(f)
19 return o
20
21 class statichttprepository(localrepo.localrepository):
22 def __init__(self, ui, path):
23 self.path = (path + "/.hg")
24 self.ui = ui
25 self.opener = opener(self.path)
26 self.manifest = manifest.manifest(self.opener)
27 self.changelog = changelog.changelog(self.opener)
28 self.tagscache = None
29 self.nodetagscache = None
30
31 def dev(self):
32 return -1
33
34 def local(self):
35 return False