mercurial/dirstate.py
changeset 47511 eaae39894312
parent 47510 94c58f3aab56
child 47512 769037a279ec
equal deleted inserted replaced
47510:94c58f3aab56 47511:eaae39894312
   557         self._map.copymap.pop(f, None)
   557         self._map.copymap.pop(f, None)
   558 
   558 
   559     def remove(self, f):
   559     def remove(self, f):
   560         '''Mark a file removed.'''
   560         '''Mark a file removed.'''
   561         self._dirty = True
   561         self._dirty = True
   562         oldstate = self[f]
       
   563         size = 0
       
   564         if self.in_merge:
       
   565             entry = self._map.get(f)
       
   566             if entry is not None:
       
   567                 # backup the previous state
       
   568                 if entry[0] == b'm':  # merge
       
   569                     size = NONNORMAL
       
   570                 elif entry[0] == b'n' and entry[2] == FROM_P2:  # other parent
       
   571                     size = FROM_P2
       
   572                     self._map.otherparentset.add(f)
       
   573         self._updatedfiles.add(f)
   562         self._updatedfiles.add(f)
   574         self._map.removefile(f, oldstate, size)
   563         self._map.removefile(f, in_merge=self.in_merge)
   575         if size == 0:
       
   576             self._map.copymap.pop(f, None)
       
   577 
   564 
   578     def merge(self, f):
   565     def merge(self, f):
   579         '''Mark a file merged.'''
   566         '''Mark a file merged.'''
   580         if not self.in_merge:
   567         if not self.in_merge:
   581             return self.normallookup(f)
   568             return self.normallookup(f)