mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 00:42:41 +01:00
Fix issue in Mercurial repos with duplicate branch heads
Summary: Fixes T5613. A branch may have multiple heads in Mercurial, but `executeOne()` expects exactly one result. Load them all instead. Equivalently, we could `limit(1)`, but it's likely that we'll use the cursors in the future to reduce the number of VCS operations we do, so this is probably a little more along the lines where we're headed. Test Plan: Poked around some repos. Reviewers: chad, richardvanvelzen Reviewed By: richardvanvelzen Subscribers: epriestley Maniphest Tasks: T5613 Differential Revision: https://secure.phabricator.com/D9918
This commit is contained in:
parent
9cb6b2cfcc
commit
66a30ef97b
1 changed files with 4 additions and 3 deletions
|
@ -29,13 +29,14 @@ final class DiffusionRepositoryController extends DiffusionController {
|
|||
// If this VCS supports branches, check that the selected branch actually
|
||||
// exists.
|
||||
if ($drequest->supportsBranches()) {
|
||||
$ref_cursor = id(new PhabricatorRepositoryRefCursorQuery())
|
||||
// NOTE: Mercurial may have multiple branch heads with the same name.
|
||||
$ref_cursors = id(new PhabricatorRepositoryRefCursorQuery())
|
||||
->setViewer($viewer)
|
||||
->withRepositoryPHIDs(array($repository->getPHID()))
|
||||
->withRefTypes(array(PhabricatorRepositoryRefCursor::TYPE_BRANCH))
|
||||
->withRefNames(array($drequest->getBranch()))
|
||||
->executeOne();
|
||||
if ($ref_cursor) {
|
||||
->execute();
|
||||
if ($ref_cursors) {
|
||||
// This is a valid branch, so we necessarily have some content.
|
||||
$page_has_content = true;
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue