mercurial/statichttprepo.py
author bos@serpentine.internal.keyresearch.com
Thu, 01 Sep 2005 09:08:21 -0700
changeset 1191 77a0c7528c2f
parent 1101 2cf5c8a4eae5
child 1325 57220daf40e9
permissions -rw-r--r--
Revert changeset 120aa5fc7ced1bf765b4f025f5a3a138cd87f49e. I inadvertantly used "hg import" on a message I saved, expecting it to do the right thing, but instead it made the commit look like I authored it, and filled the description with the email header. Changeset 737f9b90c571b3991f7e35dc846e7ef38a475cfe contains a guard against "hg import" doing this again.

# 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