HomePhorge

Separate "shouldPublishRef()" from "isPermanentRef()" and set…

Description

Separate "shouldPublishRef()" from "isPermanentRef()" and set "IMPORTED_PERMANENT" more narrowly

Summary:
Ref T13591. Currently, the "IMPORTED_PERMANENT" flag (previously "IMPORTED_CLOSEABLE", until D21514) flag is set by using the result of "shouldPublishRef()".

This method returns the wrong value for the flag when there is a repository-level reason not to publish the ref (most commonly, because the repository is currently importing).

Although it's correct that commits should not be published in an importing repository, that's already handled in the "PublishWorker" by testing "shouldPublishCommit()". The "IMPORTED_PERMANENT" flag should only reflect whether a commit is reachable from a permanent ref or not.

  • Move the relevant logic to a new method in Publisher.
  • Fill "IMPORTED_PERMANENT" narrowly from "isPermanentRef()", rather than broadly from "shouldPublishRef()".
  • Deduplicate some logic in "PhabricatorRepositoryRefEngine" which has the same intent as the logic in the Publisher.

Test Plan:

  • Ran discovery on a new repository, saw permanent commits marked as permanent from the beginning.
  • See later changes in this patch series for additional testing.

Maniphest Tasks: T13591

Differential Revision: https://secure.phabricator.com/D21515

Details

Provenance
epriestleyAuthored on Jan 22 2021, 1:53 PM
themackabuPushed on Mar 25 2025, 8:07 PM
Parents
rP2d0e7c37e1f5: Rename "IMPORTED_CLOSEABLE" to "IMPORTED_PERMANENT" to clarify the meaning of…
Branches
Unknown
Tags
Unknown

Event Timeline