Make blame UI recover gracefully if Identities haven't been built yet for a commit
Summary: See PHI1014. We may not have Identities if you race the import pipeline, or in some other cases which are more "bug" / "missing migration"-flavored. Load the commit data so we can fall back to it if we don't have identities. Test Plan: - Wiped out all my identities with `UPDATE ... SET authorIdentityPHID = NULL WHERE ...`. - Before change: blame fataled with `Attempting to access attached data on PhabricatorRepositoryCommit (via getCommitData()), but the data is not actually attached.`. - After change: blame falls back gracefully. - Restored identities with `bin/repository rebuild-identities`, checked blame again. Reviewers: amckinley Reviewed By: amckinley Differential Revision: https://secure.phabricator.com/D19958
This commit is contained in:
@@ -25,6 +25,9 @@ final class DiffusionBlameController extends DiffusionController {
|
||||
->withRepository($repository)
|
||||
->withIdentifiers($identifiers)
|
||||
->needIdentities(true)
|
||||
// See PHI1014. If identities haven't been built yet, we may need to
|
||||
// fall back to raw commit data.
|
||||
->needCommitData(true)
|
||||
->execute();
|
||||
$commits = mpull($commits, null, 'getCommitIdentifier');
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user