mercurial/context.py
branchstable
changeset 50215 ae61851e6fe2
parent 49306 2e726c934fcd
child 50252 a6b8b1ab9116
equal deleted inserted replaced
50214:8e0d823ef182 50215:ae61851e6fe2
    34     repoview,
    34     repoview,
    35     scmutil,
    35     scmutil,
    36     sparse,
    36     sparse,
    37     subrepo,
    37     subrepo,
    38     subrepoutil,
    38     subrepoutil,
       
    39     testing,
    39     util,
    40     util,
    40 )
    41 )
    41 from .utils import (
    42 from .utils import (
    42     dateutil,
    43     dateutil,
    43     stringutil,
    44     stringutil,
  1852 
  1853 
  1853         return modified, deleted, clean, fixup
  1854         return modified, deleted, clean, fixup
  1854 
  1855 
  1855     def _poststatusfixup(self, status, fixup):
  1856     def _poststatusfixup(self, status, fixup):
  1856         """update dirstate for files that are actually clean"""
  1857         """update dirstate for files that are actually clean"""
       
  1858         ui = self._repo.ui
       
  1859         testing.wait_on_cfg(self._repo.ui, b'status.pre-dirstate-write-file')
  1857         poststatus = self._repo.postdsstatus()
  1860         poststatus = self._repo.postdsstatus()
  1858         if fixup or poststatus or self._repo.dirstate._dirty:
  1861         if fixup or poststatus or self._repo.dirstate._dirty:
  1859             try:
  1862             try:
  1860                 oldid = self._repo.dirstate.identity()
  1863                 oldid = self._repo.dirstate.identity()
  1861 
  1864 
  1888                     else:
  1891                     else:
  1889                         # in this case, writing changes out breaks
  1892                         # in this case, writing changes out breaks
  1890                         # consistency, because .hg/dirstate was
  1893                         # consistency, because .hg/dirstate was
  1891                         # already changed simultaneously after last
  1894                         # already changed simultaneously after last
  1892                         # caching (see also issue5584 for detail)
  1895                         # caching (see also issue5584 for detail)
  1893                         self._repo.ui.debug(
  1896                         ui.debug(b'skip updating dirstate: identity mismatch\n')
  1894                             b'skip updating dirstate: identity mismatch\n'
       
  1895                         )
       
  1896             except error.LockError:
  1897             except error.LockError:
  1897                 pass
  1898                 pass
  1898             finally:
  1899             finally:
  1899                 # Even if the wlock couldn't be grabbed, clear out the list.
  1900                 # Even if the wlock couldn't be grabbed, clear out the list.
  1900                 self._repo.clearpostdsstatus()
  1901                 self._repo.clearpostdsstatus()