Page MenuHomePhabricator

D19499.diff
No OneTemporary

D19499.diff

diff --git a/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php b/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php
--- a/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php
+++ b/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php
@@ -30,18 +30,31 @@
$contains = $request->getValue('contains');
if (strlen($contains)) {
+
+ // See PHI720. If the standard "branch" field is provided, use it
+ // as the "pattern" argument to "git branch ..." to let callers test
+ // for reachability from a particular branch head.
+ $pattern = $request->getValue('branch');
+ if (strlen($pattern)) {
+ $pattern_argv = array($pattern);
+ } else {
+ $pattern_argv = array();
+ }
+
// NOTE: We can't use DiffusionLowLevelGitRefQuery here because
// `git for-each-ref` does not support `--contains`.
if ($repository->isWorkingCopyBare()) {
list($stdout) = $repository->execxLocalCommand(
- 'branch --verbose --no-abbrev --contains %s --',
- $contains);
+ 'branch --verbose --no-abbrev --contains %s -- %Ls',
+ $contains,
+ $pattern_argv);
$ref_map = DiffusionGitBranch::parseLocalBranchOutput(
$stdout);
} else {
list($stdout) = $repository->execxLocalCommand(
- 'branch -r --verbose --no-abbrev --contains %s --',
- $contains);
+ 'branch -r --verbose --no-abbrev --contains %s -- %Ls',
+ $contains,
+ $pattern_argv);
$ref_map = DiffusionGitBranch::parseRemoteBranchOutput(
$stdout,
DiffusionGitBranch::DEFAULT_GIT_REMOTE);
diff --git a/src/applications/diffusion/controller/DiffusionCommitBranchesController.php b/src/applications/diffusion/controller/DiffusionCommitBranchesController.php
--- a/src/applications/diffusion/controller/DiffusionCommitBranchesController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitBranchesController.php
@@ -22,6 +22,7 @@
array(
'contains' => $drequest->getCommit(),
'limit' => $branch_limit + 1,
+ 'branch' => null,
)));
$has_more_branches = (count($branches) > $branch_limit);

File Metadata

Mime Type
text/plain
Expires
Fri, May 24, 11:54 PM (4 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6307761
Default Alt Text
D19499.diff (2 KB)

Event Timeline