531 modified.difference_update(self.filesadded()) |
531 modified.difference_update(self.filesadded()) |
532 modified.difference_update(self.filesremoved()) |
532 modified.difference_update(self.filesremoved()) |
533 return sorted(modified) |
533 return sorted(modified) |
534 |
534 |
535 def filesadded(self): |
535 def filesadded(self): |
536 source = self._repo.ui.config(b'experimental', b'copies.read-from') |
|
537 filesadded = self._changeset.filesadded |
536 filesadded = self._changeset.filesadded |
538 if source == b'changeset-only': |
537 compute_on_none = True |
539 if filesadded is None: |
538 if self._repo.filecopiesmode == b'changeset-sidedata': |
|
539 compute_on_none = False |
|
540 else: |
|
541 source = self._repo.ui.config(b'experimental', b'copies.read-from') |
|
542 if source == b'changeset-only': |
|
543 compute_on_none = False |
|
544 elif source != b'compatibility': |
|
545 # filelog mode, ignore any changelog content |
|
546 filesadded = None |
|
547 if filesadded is None: |
|
548 if compute_on_none: |
|
549 filesadded = scmutil.computechangesetfilesadded(self) |
|
550 else: |
540 filesadded = [] |
551 filesadded = [] |
541 elif source == b'compatibility': |
552 return filesadded |
542 if filesadded is None: |
553 |
543 filesadded = scmutil.computechangesetfilesadded(self) |
554 def filesremoved(self): |
|
555 filesremoved = self._changeset.filesremoved |
|
556 compute_on_none = True |
|
557 if self._repo.filecopiesmode == b'changeset-sidedata': |
|
558 compute_on_none = False |
544 else: |
559 else: |
545 filesadded = scmutil.computechangesetfilesadded(self) |
560 source = self._repo.ui.config(b'experimental', b'copies.read-from') |
546 return filesadded |
561 if source == b'changeset-only': |
547 |
562 compute_on_none = False |
548 def filesremoved(self): |
563 elif source != b'compatibility': |
549 source = self._repo.ui.config(b'experimental', b'copies.read-from') |
564 # filelog mode, ignore any changelog content |
550 filesremoved = self._changeset.filesremoved |
565 filesremoved = None |
551 if source == b'changeset-only': |
566 if filesremoved is None: |
552 if filesremoved is None: |
567 if compute_on_none: |
|
568 filesremoved = scmutil.computechangesetfilesremoved(self) |
|
569 else: |
553 filesremoved = [] |
570 filesremoved = [] |
554 elif source == b'compatibility': |
|
555 if filesremoved is None: |
|
556 filesremoved = scmutil.computechangesetfilesremoved(self) |
|
557 else: |
|
558 filesremoved = scmutil.computechangesetfilesremoved(self) |
|
559 return filesremoved |
571 return filesremoved |
560 |
572 |
561 @propertycache |
573 @propertycache |
562 def _copies(self): |
574 def _copies(self): |
563 source = self._repo.ui.config(b'experimental', b'copies.read-from') |
|
564 p1copies = self._changeset.p1copies |
575 p1copies = self._changeset.p1copies |
565 p2copies = self._changeset.p2copies |
576 p2copies = self._changeset.p2copies |
566 # If config says to get copy metadata only from changeset, then return |
577 compute_on_none = True |
567 # that, defaulting to {} if there was no copy metadata. |
578 if self._repo.filecopiesmode == b'changeset-sidedata': |
568 # In compatibility mode, we return copy data from the changeset if |
579 compute_on_none = False |
569 # it was recorded there, and otherwise we fall back to getting it from |
580 else: |
570 # the filelogs (below). |
581 source = self._repo.ui.config(b'experimental', b'copies.read-from') |
571 if source == b'changeset-only': |
582 # If config says to get copy metadata only from changeset, then |
572 if p1copies is None: |
583 # return that, defaulting to {} if there was no copy metadata. In |
573 p1copies = {} |
584 # compatibility mode, we return copy data from the changeset if it |
574 if p2copies is None: |
585 # was recorded there, and otherwise we fall back to getting it from |
575 p2copies = {} |
586 # the filelogs (below). |
576 elif source == b'compatibility': |
587 # |
577 if p1copies is None: |
588 # If we are in compatiblity mode and there is not data in the |
578 # we are in compatiblity mode and there is not data in the |
589 # changeset), we get the copy metadata from the filelogs. |
579 # changeset), we get the copy metadata from the filelogs. |
590 # |
|
591 # otherwise, when config said to read only from filelog, we get the |
|
592 # copy metadata from the filelogs. |
|
593 if source == b'changeset-only': |
|
594 compute_on_none = False |
|
595 elif source != b'compatibility': |
|
596 # filelog mode, ignore any changelog content |
|
597 p1copies = p2copies = None |
|
598 if p1copies is None: |
|
599 if compute_on_none: |
580 p1copies, p2copies = super(changectx, self)._copies |
600 p1copies, p2copies = super(changectx, self)._copies |
581 else: |
601 else: |
582 # config said to read only from filelog, we get the copy metadata |
602 if p1copies is None: |
583 # from the filelogs. |
603 p1copies = {} |
584 p1copies, p2copies = super(changectx, self)._copies |
604 if p2copies is None: |
|
605 p2copies = {} |
585 return p1copies, p2copies |
606 return p1copies, p2copies |
586 |
607 |
587 def description(self): |
608 def description(self): |
588 return self._changeset.description |
609 return self._changeset.description |
589 |
610 |