24 rewrite, |
29 rewrite, |
25 ) |
30 ) |
26 |
31 |
27 |
32 |
28 class FileLog: |
33 class FileLog: |
|
34 _revlog: revlog.revlog |
|
35 nullid: bytes |
|
36 _fix_issue6528: bool |
|
37 |
29 def __init__(self, opener, path, try_split=False): |
38 def __init__(self, opener, path, try_split=False): |
30 self._revlog = revlog.revlog( |
39 self._revlog = revlog.revlog( |
31 opener, |
40 opener, |
32 # XXX should use the unencoded path |
41 # XXX should use the unencoded path |
33 target=(revlog_constants.KIND_FILELOG, path), |
42 target=(revlog_constants.KIND_FILELOG, path), |
41 self._revlog.filename = path |
50 self._revlog.filename = path |
42 self.nullid = self._revlog.nullid |
51 self.nullid = self._revlog.nullid |
43 opts = opener.options |
52 opts = opener.options |
44 self._fix_issue6528 = opts.get(b'issue6528.fix-incoming', True) |
53 self._fix_issue6528 = opts.get(b'issue6528.fix-incoming', True) |
45 |
54 |
46 def get_revlog(self): |
55 def get_revlog(self) -> revlog.revlog: |
47 """return an actual revlog instance if any |
56 """return an actual revlog instance if any |
48 |
57 |
49 This exist because a lot of code leverage the fact the underlying |
58 This exist because a lot of code leverage the fact the underlying |
50 storage is a revlog for optimization, so giving simple way to access |
59 storage is a revlog for optimization, so giving simple way to access |
51 the revlog instance helps such code. |
60 the revlog instance helps such code. |
52 """ |
61 """ |
53 return self._revlog |
62 return self._revlog |
54 |
63 |
55 def __len__(self): |
64 def __len__(self) -> int: |
56 return len(self._revlog) |
65 return len(self._revlog) |
57 |
66 |
58 def __iter__(self): |
67 def __iter__(self) -> Iterator[int]: |
59 return self._revlog.__iter__() |
68 return self._revlog.__iter__() |
60 |
69 |
61 def hasnode(self, node): |
70 def hasnode(self, node): |
62 if node in (self.nullid, nullrev): |
71 if node in (self.nullid, nullrev): |
63 return False |
72 return False |
232 |
241 |
233 returns True if text is different than what is stored. |
242 returns True if text is different than what is stored. |
234 """ |
243 """ |
235 return not storageutil.filedataequivalent(self, node, text) |
244 return not storageutil.filedataequivalent(self, node, text) |
236 |
245 |
237 def verifyintegrity(self, state): |
246 def verifyintegrity(self, state) -> Iterable[revlog.RevLogProblem]: |
238 return self._revlog.verifyintegrity(state) |
247 return self._revlog.verifyintegrity(state) |
239 |
248 |
240 def storageinfo( |
249 def storageinfo( |
241 self, |
250 self, |
242 exclusivefiles=False, |
251 exclusivefiles=False, |