diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial/statichttprepo.py	Sat Aug 27 16:28:53 2005 -0700
@@ -0,0 +1,35 @@
+# 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.
+
+import os, urllib
+import localrepo, httprangereader, filelog, manifest, changelog
+
+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 httprangereader.httprangereader(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
+
+    def dev(self):
+        return -1
+
+    def local(self):
+        return False