mercurial/dirstatemap.py
changeset 47689 f2aef39abc14
parent 47688 b37ab6b5c438
child 47692 e5fb14a07866
equal deleted inserted replaced
47688:b37ab6b5c438 47689:f2aef39abc14
   153         ) and "_dirs" in self.__dict__:
   153         ) and "_dirs" in self.__dict__:
   154             self._dirs.addpath(filename)
   154             self._dirs.addpath(filename)
   155         if old_entry is None and "_alldirs" in self.__dict__:
   155         if old_entry is None and "_alldirs" in self.__dict__:
   156             self._alldirs.addpath(filename)
   156             self._alldirs.addpath(filename)
   157 
   157 
   158     def _dirs_decr(self, filename, old_entry=None):
   158     def _dirs_decr(self, filename, old_entry=None, remove_variant=False):
   159         """decremente the dirstate counter if applicable"""
   159         """decremente the dirstate counter if applicable"""
   160         if old_entry is not None:
   160         if old_entry is not None:
   161             if "_dirs" in self.__dict__ and not old_entry.removed:
   161             if "_dirs" in self.__dict__ and not old_entry.removed:
   162                 self._dirs.delpath(filename)
   162                 self._dirs.delpath(filename)
   163             if "_alldirs" in self.__dict__:
   163             if "_alldirs" in self.__dict__ and not remove_variant:
   164                 self._alldirs.delpath(filename)
   164                 self._alldirs.delpath(filename)
       
   165         elif remove_variant and "_alldirs" in self.__dict__:
       
   166             self._alldirs.addpath(filename)
   165         if "filefoldmap" in self.__dict__:
   167         if "filefoldmap" in self.__dict__:
   166             normed = util.normcase(filename)
   168             normed = util.normcase(filename)
   167             self.filefoldmap.pop(normed, None)
   169             self.filefoldmap.pop(normed, None)
   168 
   170 
   169     def addfile(
   171     def addfile(
   239                 elif entry.from_p2:
   241                 elif entry.from_p2:
   240                     size = FROM_P2
   242                     size = FROM_P2
   241                     self.otherparentset.add(f)
   243                     self.otherparentset.add(f)
   242         if entry is not None and not (entry.merged or entry.from_p2):
   244         if entry is not None and not (entry.merged or entry.from_p2):
   243             self.copymap.pop(f, None)
   245             self.copymap.pop(f, None)
   244 
   246         self._dirs_decr(f, old_entry=entry, remove_variant=True)
   245         if entry is not None and not entry.removed and "_dirs" in self.__dict__:
       
   246             self._dirs.delpath(f)
       
   247         if entry is None and "_alldirs" in self.__dict__:
       
   248             self._alldirs.addpath(f)
       
   249         if "filefoldmap" in self.__dict__:
       
   250             normed = util.normcase(f)
       
   251             self.filefoldmap.pop(normed, None)
       
   252         self._map[f] = DirstateItem(b'r', 0, size, 0)
   247         self._map[f] = DirstateItem(b'r', 0, size, 0)
   253         self.nonnormalset.add(f)
   248         self.nonnormalset.add(f)
   254 
   249 
   255     def dropfile(self, f):
   250     def dropfile(self, f):
   256         """
   251         """