1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-29 10:12:41 +01:00

Fix parsing of Git branches with common and useful name "0"

Summary: See <https://discourse.phabricator-community.org/t/arc-has-a-spurious-failure-on-arc-diff/521>. Oh, PHP!

Test Plan: Created a branch named "0", ran `arc diff`. Before: fatal. After: this beautiful revision.

Reviewers: amckinley

Reviewed By: amckinley

Differential Revision: https://secure.phabricator.com/D18678
This commit is contained in:
epriestley 2017-10-04 08:22:10 -07:00
parent c804c50260
commit 76b54ce0a9
2 changed files with 7 additions and 3 deletions

View file

@ -497,6 +497,10 @@ final class ArcanistGitAPI extends ArcanistRepositoryAPI {
return null; return null;
} }
if (!strlen($branch)) {
return null;
}
return $branch; return $branch;
} }
@ -509,7 +513,7 @@ final class ArcanistGitAPI extends ArcanistRepositoryAPI {
// Verify this, and strip it. // Verify this, and strip it.
$ref = rtrim($stdout); $ref = rtrim($stdout);
$branch = $this->getBranchNameFromRef($ref); $branch = $this->getBranchNameFromRef($ref);
if (!$branch) { if ($branch === null) {
throw new Exception( throw new Exception(
pht('Failed to parse %s output!', 'git symbolic-ref')); pht('Failed to parse %s output!', 'git symbolic-ref'));
} }
@ -1015,7 +1019,7 @@ final class ArcanistGitAPI extends ArcanistRepositoryAPI {
list($ref, $hash, $epoch, $tree, $desc, $text) = $fields; list($ref, $hash, $epoch, $tree, $desc, $text) = $fields;
$branch = $this->getBranchNameFromRef($ref); $branch = $this->getBranchNameFromRef($ref);
if ($branch) { if ($branch !== null) {
$result[] = array( $result[] = array(
'current' => ($branch === $current), 'current' => ($branch === $current),
'name' => $branch, 'name' => $branch,

View file

@ -444,7 +444,7 @@ EOTEXT
$branch = $this->getArgument('branch'); $branch = $this->getArgument('branch');
if (empty($branch)) { if (empty($branch)) {
$branch = $this->getBranchOrBookmark(); $branch = $this->getBranchOrBookmark();
if ($branch) { if ($branch !== null) {
$this->branchType = $this->getBranchType($branch); $this->branchType = $this->getBranchType($branch);
// TODO: This message is misleading when landing a detached head or // TODO: This message is misleading when landing a detached head or