diff --git a/src/browse/query/ArcanistBrowseObjectNameURIHardpointQuery.php b/src/browse/query/ArcanistBrowseObjectNameURIHardpointQuery.php --- a/src/browse/query/ArcanistBrowseObjectNameURIHardpointQuery.php +++ b/src/browse/query/ArcanistBrowseObjectNameURIHardpointQuery.php @@ -15,7 +15,7 @@ $token_set = array(); foreach ($refs as $key => $ref) { $token = $ref->getToken(); - if (!strlen($token)) { + if (!phutil_nonempty_string($token)) { continue; } @@ -41,7 +41,7 @@ continue; } - $uri = idx($object, 'uri'); + $uri = idx($object, 'uri', ''); if (!strlen($uri)) { continue; } diff --git a/src/browse/workflow/ArcanistBrowseWorkflow.php b/src/browse/workflow/ArcanistBrowseWorkflow.php --- a/src/browse/workflow/ArcanistBrowseWorkflow.php +++ b/src/browse/workflow/ArcanistBrowseWorkflow.php @@ -142,7 +142,7 @@ if ($many_hits) { foreach ($many_hits as $ref) { $token = $ref->getToken(); - if (strlen($token)) { + if (phutil_nonempty_string($token)) { $message = pht('Argument "%s" is ambiguous.', $token); } else { $message = pht('Default behavior is ambiguous.'); @@ -167,7 +167,7 @@ foreach ($many_hits as $ref) { $token_display = $ref->getToken(); - if (!strlen($token)) { + if (!phutil_nonempty_string($token)) { $token_display = pht(''); } diff --git a/src/ref/ArcanistRepositoryRef.php b/src/ref/ArcanistRepositoryRef.php --- a/src/ref/ArcanistRepositoryRef.php +++ b/src/ref/ArcanistRepositoryRef.php @@ -80,7 +80,9 @@ $params = $params + $defaults; $uri_base = $this->browseURI; - $uri_base = rtrim($uri_base, '/'); + if ($uri_base !== null) { + $uri_base = rtrim($uri_base, '/'); + } $uri_branch = phutil_escape_uri_path_component($params['branch']);