2175 else: |
2175 else: |
2176 raise error.ProgrammingError("No such file or directory: %s" % |
2176 raise error.ProgrammingError("No such file or directory: %s" % |
2177 self._path) |
2177 self._path) |
2178 return self._wrappedctx[path].size() |
2178 return self._wrappedctx[path].size() |
2179 |
2179 |
|
2180 def tomemctx(self, text, branch=None, extra=None, date=None, parents=None, |
|
2181 user=None, editor=None): |
|
2182 """Converts this ``overlayworkingctx`` into a ``memctx`` ready to be |
|
2183 committed. |
|
2184 |
|
2185 ``text`` is the commit message. |
|
2186 ``parents`` (optional) are rev numbers. |
|
2187 """ |
|
2188 # Default parents to the wrapped contexts' if not passed. |
|
2189 if parents is None: |
|
2190 parents = self._wrappedctx.parents() |
|
2191 if len(parents) == 1: |
|
2192 parents = (parents[0], None) |
|
2193 |
|
2194 # ``parents`` is passed as rev numbers; convert to ``commitctxs``. |
|
2195 if parents[1] is None: |
|
2196 parents = (self._repo[parents[0]], None) |
|
2197 else: |
|
2198 parents = (self._repo[parents[0]], self._repo[parents[1]]) |
|
2199 |
|
2200 files = self._cache.keys() |
|
2201 def getfile(repo, memctx, path): |
|
2202 if self._cache[path]['exists']: |
|
2203 return memfilectx(repo, path, |
|
2204 self._cache[path]['data'], |
|
2205 'l' in self._cache[path]['flags'], |
|
2206 'x' in self._cache[path]['flags'], |
|
2207 self._cache[path]['copied'], |
|
2208 memctx) |
|
2209 else: |
|
2210 # Returning None, but including the path in `files`, is |
|
2211 # necessary for memctx to register a deletion. |
|
2212 return None |
|
2213 return memctx(self._repo, parents, text, files, getfile, date=date, |
|
2214 extra=extra, user=user, branch=branch, editor=editor) |
|
2215 |
2180 def isdirty(self, path): |
2216 def isdirty(self, path): |
2181 return path in self._cache |
2217 return path in self._cache |
2182 |
2218 |
2183 def isempty(self): |
2219 def isempty(self): |
2184 # We need to discard any keys that are actually clean before the empty |
2220 # We need to discard any keys that are actually clean before the empty |