Fix several error handling issues with Subversion commits in Diffusion
Summary: Ref T9513. I checked this briefly but didn't do a very thorough job of it. - Don't try to query merges for Subversion, since it doesn't support them. - Fix up "existsquery" to work properly (and efficiently) for both hosted and imported repositories. - Fix up "parentsquery" to have similar behavior on invalid commits to other VCSes (throw an exception). Test Plan: - No more merges warning on SVN. - Hosted SVN gets the right exists result now. - Visiting "r23980283789287" now 404's instead of "not parsed yet". Reviewers: chad Reviewed By: chad Maniphest Tasks: T9513 Differential Revision: https://secure.phabricator.com/D14239
This commit is contained in:
@@ -1136,14 +1136,17 @@ final class DiffusionCommitController extends DiffusionController {
|
||||
$merge_limit = $this->getMergeDisplayLimit();
|
||||
|
||||
try {
|
||||
$merges = $this->callConduitWithDiffusionRequest(
|
||||
'diffusion.mergedcommitsquery',
|
||||
array(
|
||||
'commit' => $commit,
|
||||
'limit' => $merge_limit + 1,
|
||||
));
|
||||
|
||||
$this->commitMerges = DiffusionPathChange::newFromConduit($merges);
|
||||
if ($repository->isSVN()) {
|
||||
$this->commitMerges = array();
|
||||
} else {
|
||||
$merges = $this->callConduitWithDiffusionRequest(
|
||||
'diffusion.mergedcommitsquery',
|
||||
array(
|
||||
'commit' => $commit,
|
||||
'limit' => $merge_limit + 1,
|
||||
));
|
||||
$this->commitMerges = DiffusionPathChange::newFromConduit($merges);
|
||||
}
|
||||
} catch (Exception $ex) {
|
||||
$this->commitMerges = false;
|
||||
$exceptions[] = $ex;
|
||||
|
||||
Reference in New Issue
Block a user