When observing a repository, switch to "importing" mode on a large discovery in an empty repository
Summary: Ref T10923. Fixes T9554. When hosting a repository, we currently have a heuristic that tries to detect when you're doing an initial import: if you push more than 7 commits to an empty repository, it counts as an import and we disable mail/feed/etc. Do something similar for observed repositories: if the repository is empty and we discover more than 7 commits, switch to import mode until we catch up. This should align behavior with user expectation more often when juggling hosted vs imported repositories. Test Plan: - Created a new hosted repository. - Activated it and allowed it to fully import. - Added an "Observe URI". - Saw it automatically drop into "Importing" mode until the import completed. - Swapped it back to hosted mode. Reviewers: chad Reviewed By: chad Maniphest Tasks: T9554, T10923 Differential Revision: https://secure.phabricator.com/D15877
This commit is contained in:
@@ -172,14 +172,7 @@ final class DiffusionCommitHookEngine extends Phobject {
|
||||
|
||||
if ($this->isInitialImport($all_updates)) {
|
||||
$repository = $this->getRepository();
|
||||
|
||||
$repository->openTransaction();
|
||||
$repository->beginReadLocking();
|
||||
$repository = $repository->reload();
|
||||
$repository->setDetail('importing', true);
|
||||
$repository->save();
|
||||
$repository->endReadLocking();
|
||||
$repository->saveTransaction();
|
||||
$repository->markImporting();
|
||||
}
|
||||
|
||||
if ($this->emailPHIDs) {
|
||||
@@ -1244,7 +1237,7 @@ final class DiffusionCommitHookEngine extends Phobject {
|
||||
$commit_count++;
|
||||
}
|
||||
|
||||
if ($commit_count <= 7) {
|
||||
if ($commit_count <= PhabricatorRepository::IMPORT_THRESHOLD) {
|
||||
// If this pushes a very small number of commits, assume it's an
|
||||
// initial commit or stack of a few initial commits.
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user