Add an "Unreachable" flag for commits and revive them during discovery
Summary: Ref T9028. This is the easy part of dealing with deleted commits: - Add a flag for unreachable commits (nothing sets this flag yet). - Ignore unreachable commits when querying for known commits during discovery, so we pretend they do not exist. - When recording a commit, try just reviving an existing unreachable commit first. If that works, bail out. Test Plan: - Artificially marked a commit as unreachable with raw SQL. - Verified it said "deleted: unreachable" in the UI. - Ran `repository discover --trace --verbose`. - Saw the discovery process ignore the commit when filling the cache. - Saw the discovery process revive the commit instead of trying to record it again. - Web UI now shows the commit as normal. - Running `repository discover` again doesn't make any further changes. Reviewers: chad Reviewed By: chad Maniphest Tasks: T9028 Differential Revision: https://secure.phabricator.com/D16130
This commit is contained in:
@@ -129,6 +129,12 @@ final class DiffusionCommitController extends DiffusionController {
|
||||
),
|
||||
$message));
|
||||
|
||||
if ($commit->isUnreachable()) {
|
||||
$this->commitErrors[] = pht(
|
||||
'This commit has been deleted in the repository: it is no longer '.
|
||||
'reachable from any branch, tag, or ref.');
|
||||
}
|
||||
|
||||
if ($this->getCommitErrors()) {
|
||||
$error_panel = id(new PHUIInfoView())
|
||||
->appendChild($this->getCommitErrors())
|
||||
|
||||
Reference in New Issue
Block a user