# HG changeset patch # User Matt Mackall # Date 2008-08-14 01:18:42 # Node ID 40690d614ce603bba356b22c42f0491edda11c51 # Parent a6bb949301054fe4f060e817f80d81c8870271a1 store: take opener as an argument diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -60,7 +60,7 @@ class localrepository(repo.repository): if inst.errno != errno.ENOENT: raise - self.store = store.store(requirements, self.path) + self.store = store.store(requirements, self.path, util.opener) self.spath = self.store.path self.sopener = self.store.opener self.sjoin = self.store.join diff --git a/mercurial/store.py b/mercurial/store.py --- a/mercurial/store.py +++ b/mercurial/store.py @@ -94,16 +94,16 @@ class _store: yield x class directstore(_store): - def __init__(self, path): + def __init__(self, path, opener): _store.__init__(self, path) - self.opener = util.opener(self.path) + self.opener = opener(self.path) self.opener.createmode = self.createmode class encodedstore(_store): - def __init__(self, path): + def __init__(self, path, opener): _store.__init__(self, os.path.join(path, 'store')) self.encodefn = encodefilename - op = util.opener(self.path) + op = opener(self.path) op.createmode = self.createmode self.opener = lambda f, *args, **kw: op(self.encodefn(f), *args, **kw) @@ -125,8 +125,8 @@ def encodefn(requirements): else: return encodefilename -def store(requirements, path): +def store(requirements, path, opener): if 'store' not in requirements: - return directstore(path) + return directstore(path, opener) else: - return encodedstore(path) + return encodedstore(path, opener)