Page MenuHomePhabricator

D18816.diff
No OneTemporary

D18816.diff

diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php
--- a/src/applications/diffusion/controller/DiffusionCommitController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitController.php
@@ -39,20 +39,23 @@
return $this->buildRawDiffResponse($drequest);
}
- $commit = id(new DiffusionCommitQuery())
+ $commits = id(new DiffusionCommitQuery())
->setViewer($viewer)
->withRepository($repository)
->withIdentifiers(array($commit_identifier))
->needCommitData(true)
->needAuditRequests(true)
- ->executeOne();
+ ->setLimit(100)
+ ->execute();
+
+ $multiple_results = count($commits) > 1;
$crumbs = $this->buildCrumbs(array(
- 'commit' => true,
+ 'commit' => !$multiple_results,
));
$crumbs->setBorder(true);
- if (!$commit) {
+ if (!$commits) {
if (!$this->getCommitExists()) {
return new Aphront404Response();
}
@@ -70,7 +73,40 @@
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($error);
+ } else if ($multiple_results) {
+
+ $warning_message =
+ pht(
+ 'The identifier %s is ambiguous and matches more than one commit.',
+ phutil_tag(
+ 'strong',
+ array(),
+ $commit_identifier));
+
+ $error = id(new PHUIInfoView())
+ ->setTitle(pht('Ambiguous Commit'))
+ ->setSeverity(PHUIInfoView::SEVERITY_WARNING)
+ ->appendChild($warning_message);
+
+ $list = id(new DiffusionCommitListView())
+ ->setViewer($viewer)
+ ->setCommits($commits)
+ ->setNoDataString(pht('No recent commits.'));
+
+ $crumbs->addTextCrumb(pht('Ambiguous Commit'));
+
+ $matched_commits = id(new PHUITwoColumnView())
+ ->setFooter(array(
+ $error,
+ $list,
+ ));
+ return $this->newPage()
+ ->setTitle(pht('Ambiguous Commit'))
+ ->setCrumbs($crumbs)
+ ->appendChild($matched_commits);
+ } else {
+ $commit = head($commits);
}
$audit_requests = $commit->getAudits();

File Metadata

Mime Type
text/plain
Expires
Tue, May 14, 12:23 AM (3 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6285030
Default Alt Text
D18816.diff (2 KB)

Event Timeline