mercurial/dirstatemap.py
changeset 49103 77dfde417e5e
parent 49102 358b1a1e3678
child 49105 a69ea5a3c5a5
equal deleted inserted replaced
49102:358b1a1e3678 49103:77dfde417e5e
    98         tracking in a different way.
    98         tracking in a different way.
    99         """
    99         """
   100 
   100 
   101     def _refresh_entry(self, f, entry):
   101     def _refresh_entry(self, f, entry):
   102         """record updated state of an entry"""
   102         """record updated state of an entry"""
   103 
       
   104     def _insert_entry(self, f, entry):
       
   105         """add a new dirstate entry (or replace an unrelated one)
       
   106 
       
   107         The fact it is actually new is the responsability of the caller
       
   108         """
       
   109 
   103 
   110     def _drop_entry(self, f):
   104     def _drop_entry(self, f):
   111         """remove any entry for file f
   105         """remove any entry for file f
   112 
   106 
   113         This should also drop associated copy information
   107         This should also drop associated copy information
   509             p1_tracked=p1_tracked,
   503             p1_tracked=p1_tracked,
   510             p2_info=p2_info,
   504             p2_info=p2_info,
   511             has_meaningful_mtime=has_meaningful_mtime,
   505             has_meaningful_mtime=has_meaningful_mtime,
   512             parentfiledata=parentfiledata,
   506             parentfiledata=parentfiledata,
   513         )
   507         )
   514         self._insert_entry(filename, entry)
   508         self._map[filename] = entry
   515 
   509 
   516     def set_tracked(self, filename):
   510     def set_tracked(self, filename):
   517         new = False
   511         new = False
   518         entry = self.get(filename)
   512         entry = self.get(filename)
   519         if entry is None:
   513         if entry is None:
   520             self._dirs_incr(filename)
   514             self._dirs_incr(filename)
   521             entry = DirstateItem(
   515             entry = DirstateItem(
   522                 wc_tracked=True,
   516                 wc_tracked=True,
   523             )
   517             )
   524 
   518 
   525             self._insert_entry(filename, entry)
   519             self._map[filename] = entry
   526             new = True
   520             new = True
   527         elif not entry.tracked:
   521         elif not entry.tracked:
   528             self._dirs_incr(filename, entry)
   522             self._dirs_incr(filename, entry)
   529             entry.set_tracked()
   523             entry.set_tracked()
   530             self._refresh_entry(filename, entry)
   524             self._refresh_entry(filename, entry)
   538         return new
   532         return new
   539 
   533 
   540     def _refresh_entry(self, f, entry):
   534     def _refresh_entry(self, f, entry):
   541         if not entry.any_tracked:
   535         if not entry.any_tracked:
   542             self._map.pop(f, None)
   536             self._map.pop(f, None)
   543 
       
   544     def _insert_entry(self, f, entry):
       
   545         self._map[f] = entry
       
   546 
   537 
   547     def _drop_entry(self, f):
   538     def _drop_entry(self, f):
   548         self._map.pop(f, None)
   539         self._map.pop(f, None)
   549         self.copymap.pop(f, None)
   540         self.copymap.pop(f, None)
   550 
   541 
   716             if not entry.any_tracked:
   707             if not entry.any_tracked:
   717                 self._map.drop_item_and_copy_source(f)
   708                 self._map.drop_item_and_copy_source(f)
   718             else:
   709             else:
   719                 self._map.addfile(f, entry)
   710                 self._map.addfile(f, entry)
   720 
   711 
   721         def _insert_entry(self, f, entry):
       
   722             self._map.addfile(f, entry)
       
   723 
       
   724         def set_tracked(self, f):
   712         def set_tracked(self, f):
   725             return self._map.set_tracked(f)
   713             return self._map.set_tracked(f)
   726 
   714 
   727         def reset_state(
   715         def reset_state(
   728             self,
   716             self,