equal
deleted
inserted
replaced
289 self._mtime_s = None |
289 self._mtime_s = None |
290 self._mtime_ns = None |
290 self._mtime_ns = None |
291 |
291 |
292 @property |
292 @property |
293 def mode(self): |
293 def mode(self): |
294 return self.v1_mode() |
294 return self._v1_mode() |
295 |
295 |
296 @property |
296 @property |
297 def size(self): |
297 def size(self): |
298 return self.v1_size() |
298 return self._v1_size() |
299 |
299 |
300 @property |
300 @property |
301 def mtime(self): |
301 def mtime(self): |
302 return self.v1_mtime() |
302 return self._v1_mtime() |
303 |
303 |
304 def mtime_likely_equal_to(self, other_mtime): |
304 def mtime_likely_equal_to(self, other_mtime): |
305 self_sec = self._mtime_s |
305 self_sec = self._mtime_s |
306 if self_sec is None: |
306 if self_sec is None: |
307 return False |
307 return False |
336 dirstatev1 format. It would make sense to ultimately deprecate it in |
336 dirstatev1 format. It would make sense to ultimately deprecate it in |
337 favor of the more "semantic" attributes. |
337 favor of the more "semantic" attributes. |
338 """ |
338 """ |
339 if not self.any_tracked: |
339 if not self.any_tracked: |
340 return b'?' |
340 return b'?' |
341 return self.v1_state() |
341 return self._v1_state() |
342 |
342 |
343 @property |
343 @property |
344 def has_fallback_exec(self): |
344 def has_fallback_exec(self): |
345 """True if "fallback" information are available for the "exec" bit |
345 """True if "fallback" information are available for the "exec" bit |
346 |
346 |
496 # Note: we do not need to do anything regarding |
496 # Note: we do not need to do anything regarding |
497 # DIRSTATE_V2_ALL_UNKNOWN_RECORDED and DIRSTATE_V2_ALL_IGNORED_RECORDED |
497 # DIRSTATE_V2_ALL_UNKNOWN_RECORDED and DIRSTATE_V2_ALL_IGNORED_RECORDED |
498 # since we never set _DIRSTATE_V2_HAS_DIRCTORY_MTIME |
498 # since we never set _DIRSTATE_V2_HAS_DIRCTORY_MTIME |
499 return (flags, self._size or 0, self._mtime_s or 0, self._mtime_ns or 0) |
499 return (flags, self._size or 0, self._mtime_s or 0, self._mtime_ns or 0) |
500 |
500 |
501 def v1_state(self): |
501 def _v1_state(self): |
502 """return a "state" suitable for v1 serialization""" |
502 """return a "state" suitable for v1 serialization""" |
503 if not self.any_tracked: |
503 if not self.any_tracked: |
504 # the object has no state to record, this is -currently- |
504 # the object has no state to record, this is -currently- |
505 # unsupported |
505 # unsupported |
506 raise RuntimeError('untracked item') |
506 raise RuntimeError('untracked item') |
511 elif self.added: |
511 elif self.added: |
512 return b'a' |
512 return b'a' |
513 else: |
513 else: |
514 return b'n' |
514 return b'n' |
515 |
515 |
516 def v1_mode(self): |
516 def _v1_mode(self): |
517 """return a "mode" suitable for v1 serialization""" |
517 """return a "mode" suitable for v1 serialization""" |
518 return self._mode if self._mode is not None else 0 |
518 return self._mode if self._mode is not None else 0 |
519 |
519 |
520 def v1_size(self): |
520 def _v1_size(self): |
521 """return a "size" suitable for v1 serialization""" |
521 """return a "size" suitable for v1 serialization""" |
522 if not self.any_tracked: |
522 if not self.any_tracked: |
523 # the object has no state to record, this is -currently- |
523 # the object has no state to record, this is -currently- |
524 # unsupported |
524 # unsupported |
525 raise RuntimeError('untracked item') |
525 raise RuntimeError('untracked item') |
534 elif self._size is None: |
534 elif self._size is None: |
535 return NONNORMAL |
535 return NONNORMAL |
536 else: |
536 else: |
537 return self._size |
537 return self._size |
538 |
538 |
539 def v1_mtime(self): |
539 def _v1_mtime(self): |
540 """return a "mtime" suitable for v1 serialization""" |
540 """return a "mtime" suitable for v1 serialization""" |
541 if not self.any_tracked: |
541 if not self.any_tracked: |
542 # the object has no state to record, this is -currently- |
542 # the object has no state to record, this is -currently- |
543 # unsupported |
543 # unsupported |
544 raise RuntimeError('untracked item') |
544 raise RuntimeError('untracked item') |
961 for f, e in dmap.items(): |
961 for f, e in dmap.items(): |
962 if f in copymap: |
962 if f in copymap: |
963 f = b"%s\0%s" % (f, copymap[f]) |
963 f = b"%s\0%s" % (f, copymap[f]) |
964 e = _pack( |
964 e = _pack( |
965 b">cllll", |
965 b">cllll", |
966 e.v1_state(), |
966 e._v1_state(), |
967 e.v1_mode(), |
967 e._v1_mode(), |
968 e.v1_size(), |
968 e._v1_size(), |
969 e.v1_mtime(), |
969 e._v1_mtime(), |
970 len(f), |
970 len(f), |
971 ) |
971 ) |
972 write(e) |
972 write(e) |
973 write(f) |
973 write(f) |
974 return cs.getvalue() |
974 return cs.getvalue() |