Mercurial > hg
comparison mercurial/store.py @ 6896:40690d614ce6
store: take opener as an argument
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 13 Aug 2008 20:18:42 -0500 |
parents | dab95717058d |
children | faea0d27e38f |
comparison
equal
deleted
inserted
replaced
6895:a6bb94930105 | 6896:40690d614ce6 |
---|---|
92 meta.reverse() | 92 meta.reverse() |
93 for x in meta: | 93 for x in meta: |
94 yield x | 94 yield x |
95 | 95 |
96 class directstore(_store): | 96 class directstore(_store): |
97 def __init__(self, path): | 97 def __init__(self, path, opener): |
98 _store.__init__(self, path) | 98 _store.__init__(self, path) |
99 self.opener = util.opener(self.path) | 99 self.opener = opener(self.path) |
100 self.opener.createmode = self.createmode | 100 self.opener.createmode = self.createmode |
101 | 101 |
102 class encodedstore(_store): | 102 class encodedstore(_store): |
103 def __init__(self, path): | 103 def __init__(self, path, opener): |
104 _store.__init__(self, os.path.join(path, 'store')) | 104 _store.__init__(self, os.path.join(path, 'store')) |
105 self.encodefn = encodefilename | 105 self.encodefn = encodefilename |
106 op = util.opener(self.path) | 106 op = opener(self.path) |
107 op.createmode = self.createmode | 107 op.createmode = self.createmode |
108 self.opener = lambda f, *args, **kw: op(self.encodefn(f), *args, **kw) | 108 self.opener = lambda f, *args, **kw: op(self.encodefn(f), *args, **kw) |
109 | 109 |
110 def datafiles(self, reporterror=None): | 110 def datafiles(self, reporterror=None): |
111 for f, size in self._revlogfiles('data', True): | 111 for f, size in self._revlogfiles('data', True): |
123 if 'store' not in requirements: | 123 if 'store' not in requirements: |
124 return lambda x: x | 124 return lambda x: x |
125 else: | 125 else: |
126 return encodefilename | 126 return encodefilename |
127 | 127 |
128 def store(requirements, path): | 128 def store(requirements, path, opener): |
129 if 'store' not in requirements: | 129 if 'store' not in requirements: |
130 return directstore(path) | 130 return directstore(path, opener) |
131 else: | 131 else: |
132 return encodedstore(path) | 132 return encodedstore(path, opener) |