mercurial/localrepo.py
changeset 32814 2083d1643d69
parent 32730 b8ff7d0ff361
child 32871 6fa245f80b6f
equal deleted inserted replaced
32813:6d73b7ff8f92 32814:2083d1643d69
   397         # - phase change,
   397         # - phase change,
   398         # - new obsolescence marker,
   398         # - new obsolescence marker,
   399         # - working directory parent change,
   399         # - working directory parent change,
   400         # - bookmark changes
   400         # - bookmark changes
   401         self.filteredrevcache = {}
   401         self.filteredrevcache = {}
       
   402 
       
   403         # post-dirstate-status hooks
       
   404         self._postdsstatus = []
   402 
   405 
   403         # generic mapping between names and nodes
   406         # generic mapping between names and nodes
   404         self.names = namespaces.namespaces()
   407         self.names = namespaces.namespaces()
   405 
   408 
   406     def close(self):
   409     def close(self):
  1882                listsubrepos=False):
  1885                listsubrepos=False):
  1883         '''a convenience method that calls node1.status(node2)'''
  1886         '''a convenience method that calls node1.status(node2)'''
  1884         return self[node1].status(node2, match, ignored, clean, unknown,
  1887         return self[node1].status(node2, match, ignored, clean, unknown,
  1885                                   listsubrepos)
  1888                                   listsubrepos)
  1886 
  1889 
       
  1890     def addpostdsstatus(self, ps):
       
  1891         """Add a callback to run within the wlock, at the point at which status
       
  1892         fixups happen.
       
  1893 
       
  1894         On status completion, callback(wctx, status) will be called with the
       
  1895         wlock held, unless the dirstate has changed from underneath or the wlock
       
  1896         couldn't be grabbed.
       
  1897 
       
  1898         Callbacks should not capture and use a cached copy of the dirstate --
       
  1899         it might change in the meanwhile. Instead, they should access the
       
  1900         dirstate via wctx.repo().dirstate.
       
  1901 
       
  1902         This list is emptied out after each status run -- extensions should
       
  1903         make sure it adds to this list each time dirstate.status is called.
       
  1904         Extensions should also make sure they don't call this for statuses
       
  1905         that don't involve the dirstate.
       
  1906         """
       
  1907 
       
  1908         # The list is located here for uniqueness reasons -- it is actually
       
  1909         # managed by the workingctx, but that isn't unique per-repo.
       
  1910         self._postdsstatus.append(ps)
       
  1911 
       
  1912     def postdsstatus(self):
       
  1913         """Used by workingctx to get the list of post-dirstate-status hooks."""
       
  1914         return self._postdsstatus
       
  1915 
       
  1916     def clearpostdsstatus(self):
       
  1917         """Used by workingctx to clear post-dirstate-status hooks."""
       
  1918         del self._postdsstatus[:]
       
  1919 
  1887     def heads(self, start=None):
  1920     def heads(self, start=None):
  1888         if start is None:
  1921         if start is None:
  1889             cl = self.changelog
  1922             cl = self.changelog
  1890             headrevs = reversed(cl.headrevs())
  1923             headrevs = reversed(cl.headrevs())
  1891             return [cl.node(rev) for rev in headrevs]
  1924             return [cl.node(rev) for rev in headrevs]