Show More
@@ -381,39 +381,10 b' class dirstate(object):' | |||
|
381 | 381 | oldp2 = self._pl[1] |
|
382 | 382 | if self._origpl is None: |
|
383 | 383 | self._origpl = self._pl |
|
384 | self._map.setparents(p1, p2) | |
|
385 | copies = {} | |
|
386 | 384 | nullid = self._nodeconstants.nullid |
|
387 | if oldp2 != nullid and p2 == nullid: | |
|
388 | candidatefiles = self._map.non_normal_or_other_parent_paths() | |
|
389 | ||
|
390 | for f in candidatefiles: | |
|
391 | s = self._map.get(f) | |
|
392 | if s is None: | |
|
393 | continue | |
|
394 | ||
|
395 | # Discard "merged" markers when moving away from a merge state | |
|
396 | if s.merged: | |
|
397 | source = self._map.copymap.get(f) | |
|
398 | if source: | |
|
399 | copies[f] = source | |
|
400 | self._map.reset_state( | |
|
401 | f, | |
|
402 | wc_tracked=True, | |
|
403 | p1_tracked=True, | |
|
404 | possibly_dirty=True, | |
|
405 | ) | |
|
406 | # Also fix up otherparent markers | |
|
407 | elif s.from_p2: | |
|
408 | source = self._map.copymap.get(f) | |
|
409 | if source: | |
|
410 | copies[f] = source | |
|
411 | self._map.reset_state( | |
|
412 | f, | |
|
413 | p1_tracked=False, | |
|
414 | wc_tracked=True, | |
|
415 | ) | |
|
416 | return copies | |
|
385 | # True if we need to fold p2 related state back to a linear case | |
|
386 | fold_p2 = oldp2 != nullid and p2 == nullid | |
|
387 | return self._map.setparents(p1, p2, fold_p2=fold_p2) | |
|
417 | 388 | |
|
418 | 389 | def setbranch(self, branch): |
|
419 | 390 | self.__class__._branch.set(self, encoding.fromlocal(branch)) |
@@ -428,9 +428,40 b' class dirstatemap(object):' | |||
|
428 | 428 | |
|
429 | 429 | return self._parents |
|
430 | 430 | |
|
431 | def setparents(self, p1, p2): | |
|
431 | def setparents(self, p1, p2, fold_p2=False): | |
|
432 | 432 | self._parents = (p1, p2) |
|
433 | 433 | self._dirtyparents = True |
|
434 | copies = {} | |
|
435 | if fold_p2: | |
|
436 | candidatefiles = self.non_normal_or_other_parent_paths() | |
|
437 | ||
|
438 | for f in candidatefiles: | |
|
439 | s = self.get(f) | |
|
440 | if s is None: | |
|
441 | continue | |
|
442 | ||
|
443 | # Discard "merged" markers when moving away from a merge state | |
|
444 | if s.merged: | |
|
445 | source = self.copymap.get(f) | |
|
446 | if source: | |
|
447 | copies[f] = source | |
|
448 | self.reset_state( | |
|
449 | f, | |
|
450 | wc_tracked=True, | |
|
451 | p1_tracked=True, | |
|
452 | possibly_dirty=True, | |
|
453 | ) | |
|
454 | # Also fix up otherparent markers | |
|
455 | elif s.from_p2: | |
|
456 | source = self.copymap.get(f) | |
|
457 | if source: | |
|
458 | copies[f] = source | |
|
459 | self.reset_state( | |
|
460 | f, | |
|
461 | p1_tracked=False, | |
|
462 | wc_tracked=True, | |
|
463 | ) | |
|
464 | return copies | |
|
434 | 465 | |
|
435 | 466 | def read(self): |
|
436 | 467 | # ignore HG_PENDING because identity is used only for writing |
@@ -769,9 +800,40 b' if rustmod is not None:' | |||
|
769 | 800 | # File doesn't exist, so the current state is empty |
|
770 | 801 | return b'' |
|
771 | 802 | |
|
772 | def setparents(self, p1, p2): | |
|
803 | def setparents(self, p1, p2, fold_p2=False): | |
|
773 | 804 | self._parents = (p1, p2) |
|
774 | 805 | self._dirtyparents = True |
|
806 | copies = {} | |
|
807 | if fold_p2: | |
|
808 | candidatefiles = self.non_normal_or_other_parent_paths() | |
|
809 | ||
|
810 | for f in candidatefiles: | |
|
811 | s = self.get(f) | |
|
812 | if s is None: | |
|
813 | continue | |
|
814 | ||
|
815 | # Discard "merged" markers when moving away from a merge state | |
|
816 | if s.merged: | |
|
817 | source = self.copymap.get(f) | |
|
818 | if source: | |
|
819 | copies[f] = source | |
|
820 | self.reset_state( | |
|
821 | f, | |
|
822 | wc_tracked=True, | |
|
823 | p1_tracked=True, | |
|
824 | possibly_dirty=True, | |
|
825 | ) | |
|
826 | # Also fix up otherparent markers | |
|
827 | elif s.from_p2: | |
|
828 | source = self.copymap.get(f) | |
|
829 | if source: | |
|
830 | copies[f] = source | |
|
831 | self.reset_state( | |
|
832 | f, | |
|
833 | p1_tracked=False, | |
|
834 | wc_tracked=True, | |
|
835 | ) | |
|
836 | return copies | |
|
775 | 837 | |
|
776 | 838 | def parents(self): |
|
777 | 839 | if not self._parents: |
General Comments 0
You need to be logged in to leave comments.
Login now