mercurial/dirstate.py
changeset 50026 f979d8af8648
parent 50025 23b70ce09e55
child 50028 380ed77e9ad3
equal deleted inserted replaced
50025:23b70ce09e55 50026:f979d8af8648
    78         return func(self, *args, **kwargs)
    78         return func(self, *args, **kwargs)
    79 
    79 
    80     return wrap
    80     return wrap
    81 
    81 
    82 
    82 
    83 def requires_no_parents_change(func):
    83 def requires_not_changing_parents(func):
    84     def wrap(self, *args, **kwargs):
    84     def wrap(self, *args, **kwargs):
    85         if self.pendingparentchange():
    85         if self.pendingparentchange():
    86             msg = 'calling `%s` inside of a changing_parents context'
    86             msg = 'calling `%s` inside of a changing_parents context'
    87             msg %= func.__name__
    87             msg %= func.__name__
    88             raise error.ProgrammingError(msg)
    88             raise error.ProgrammingError(msg)
   476         return self._map.copymap.get(file, None)
   476         return self._map.copymap.get(file, None)
   477 
   477 
   478     def copies(self):
   478     def copies(self):
   479         return self._map.copymap
   479         return self._map.copymap
   480 
   480 
   481     @requires_no_parents_change
   481     @requires_not_changing_parents
   482     def set_tracked(self, filename, reset_copy=False):
   482     def set_tracked(self, filename, reset_copy=False):
   483         """a "public" method for generic code to mark a file as tracked
   483         """a "public" method for generic code to mark a file as tracked
   484 
   484 
   485         This function is to be called outside of "update/merge" case. For
   485         This function is to be called outside of "update/merge" case. For
   486         example by a command like `hg add X`.
   486         example by a command like `hg add X`.
   498             self._map.copymap.pop(filename, None)
   498             self._map.copymap.pop(filename, None)
   499         if pre_tracked:
   499         if pre_tracked:
   500             self._dirty_tracked_set = True
   500             self._dirty_tracked_set = True
   501         return pre_tracked
   501         return pre_tracked
   502 
   502 
   503     @requires_no_parents_change
   503     @requires_not_changing_parents
   504     def set_untracked(self, filename):
   504     def set_untracked(self, filename):
   505         """a "public" method for generic code to mark a file as untracked
   505         """a "public" method for generic code to mark a file as untracked
   506 
   506 
   507         This function is to be called outside of "update/merge" case. For
   507         This function is to be called outside of "update/merge" case. For
   508         example by a command like `hg remove X`.
   508         example by a command like `hg remove X`.
   513         if ret:
   513         if ret:
   514             self._dirty = True
   514             self._dirty = True
   515             self._dirty_tracked_set = True
   515             self._dirty_tracked_set = True
   516         return ret
   516         return ret
   517 
   517 
   518     @requires_no_parents_change
   518     @requires_not_changing_parents
   519     def set_clean(self, filename, parentfiledata):
   519     def set_clean(self, filename, parentfiledata):
   520         """record that the current state of the file on disk is known to be clean"""
   520         """record that the current state of the file on disk is known to be clean"""
   521         self._dirty = True
   521         self._dirty = True
   522         if not self._map[filename].tracked:
   522         if not self._map[filename].tracked:
   523             self._check_new_tracked_filename(filename)
   523             self._check_new_tracked_filename(filename)
   524         (mode, size, mtime) = parentfiledata
   524         (mode, size, mtime) = parentfiledata
   525         self._map.set_clean(filename, mode, size, mtime)
   525         self._map.set_clean(filename, mode, size, mtime)
   526 
   526 
   527     @requires_no_parents_change
   527     @requires_not_changing_parents
   528     def set_possibly_dirty(self, filename):
   528     def set_possibly_dirty(self, filename):
   529         """record that the current state of the file on disk is unknown"""
   529         """record that the current state of the file on disk is unknown"""
   530         self._dirty = True
   530         self._dirty = True
   531         self._map.set_possibly_dirty(filename)
   531         self._map.set_possibly_dirty(filename)
   532 
   532