comparison mercurial/pure/parsers.py @ 47936:0d185f73c619

dirstate-item: implement v1_state with higher level block This is much easier to read and maintain. Differential Revision: https://phab.mercurial-scm.org/D11373
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 27 Aug 2021 17:48:12 +0200
parents 97e9f3fd9324
children dbf2d03850a2
comparison
equal deleted inserted replaced
47935:97e9f3fd9324 47936:0d185f73c619
333 """return a "state" suitable for v1 serialization""" 333 """return a "state" suitable for v1 serialization"""
334 if not (self._p1_tracked or self._p2_tracked or self._wc_tracked): 334 if not (self._p1_tracked or self._p2_tracked or self._wc_tracked):
335 # the object has no state to record, this is -currently- 335 # the object has no state to record, this is -currently-
336 # unsupported 336 # unsupported
337 raise RuntimeError('untracked item') 337 raise RuntimeError('untracked item')
338 elif not self._wc_tracked: 338 elif self.removed:
339 return b'r' 339 return b'r'
340 elif self._merged: 340 elif self.merged:
341 return b'm' 341 return b'm'
342 elif not (self._p1_tracked or self._p2_tracked) and self._wc_tracked: 342 elif self.added:
343 return b'a' 343 return b'a'
344 elif self._clean_p2 and self._wc_tracked: 344 else:
345 return b'n' 345 return b'n'
346 elif not self._p1_tracked and self._p2_tracked and self._wc_tracked:
347 return b'n'
348 elif self._possibly_dirty:
349 return b'n'
350 elif self._wc_tracked:
351 return b'n'
352 else:
353 raise RuntimeError('unreachable')
354 346
355 def v1_mode(self): 347 def v1_mode(self):
356 """return a "mode" suitable for v1 serialization""" 348 """return a "mode" suitable for v1 serialization"""
357 return self._mode if self._mode is not None else 0 349 return self._mode if self._mode is not None else 0
358 350