187 |
185 |
188 note: calling this might result to no entry existing at all if the |
186 note: calling this might result to no entry existing at all if the |
189 dirstate map does not see any point at having one for this file |
187 dirstate map does not see any point at having one for this file |
190 anymore. |
188 anymore. |
191 """ |
189 """ |
192 if merged and (clean_p1 or clean_p2): |
|
193 msg = b'`merged` argument incompatible with `clean_p1`/`clean_p2`' |
|
194 raise error.ProgrammingError(msg) |
|
195 # copy information are now outdated |
190 # copy information are now outdated |
196 # (maybe new information should be in directly passed to this function) |
191 # (maybe new information should be in directly passed to this function) |
197 self.copymap.pop(filename, None) |
192 self.copymap.pop(filename, None) |
198 |
193 |
199 if not (p1_tracked or p2_tracked or wc_tracked): |
194 if not (p1_tracked or p2_info or wc_tracked): |
200 old_entry = self._map.get(filename) |
195 old_entry = self._map.get(filename) |
201 self._drop_entry(filename) |
196 self._drop_entry(filename) |
202 self._dirs_decr(filename, old_entry=old_entry) |
197 self._dirs_decr(filename, old_entry=old_entry) |
203 return |
198 return |
204 |
|
205 p2_info = merged or clean_p2 |
|
206 if merged: |
|
207 assert p1_tracked |
|
208 |
|
209 has_meaningful_mtime = not possibly_dirty |
|
210 |
199 |
211 old_entry = self._map.get(filename) |
200 old_entry = self._map.get(filename) |
212 self._dirs_incr(filename, old_entry) |
201 self._dirs_incr(filename, old_entry) |
213 entry = DirstateItem( |
202 entry = DirstateItem( |
214 wc_tracked=wc_tracked, |
203 wc_tracked=wc_tracked, |