diff --git a/src/applications/diffusion/query/stablecommitname/DiffusionGitStableCommitNameQuery.php b/src/applications/diffusion/query/stablecommitname/DiffusionGitStableCommitNameQuery.php index 8c03ad96e..c30d81c39 100644 --- a/src/applications/diffusion/query/stablecommitname/DiffusionGitStableCommitNameQuery.php +++ b/src/applications/diffusion/query/stablecommitname/DiffusionGitStableCommitNameQuery.php @@ -1,16 +1,24 @@ <?php final class DiffusionGitStableCommitNameQuery extends DiffusionStableCommitNameQuery { protected function executeQuery() { $repository = $this->getRepository(); $branch = $this->getBranch(); - list($stdout) = $repository->execxLocalCommand( - 'rev-parse --verify %s', - $branch); + + if ($repository->isWorkingCopyBare()) { + list($stdout) = $repository->execxLocalCommand( + 'rev-parse --verify %s', + $branch); + } else { + list($stdout) = $repository->execxLocalCommand( + 'rev-parse --verify %s/%s', + DiffusionBranchInformation::DEFAULT_GIT_REMOTE, + $branch); + } $commit = trim($stdout); return substr($commit, 0, 16); } } diff --git a/src/applications/diffusion/request/DiffusionGitRequest.php b/src/applications/diffusion/request/DiffusionGitRequest.php index 975051d89..df3df74c7 100644 --- a/src/applications/diffusion/request/DiffusionGitRequest.php +++ b/src/applications/diffusion/request/DiffusionGitRequest.php @@ -1,37 +1,43 @@ <?php /** * @group diffusion */ final class DiffusionGitRequest extends DiffusionRequest { protected function getSupportsBranches() { return true; } protected function didInitialize() { if (!$this->commit) { return; } $this->expandCommitName(); } public function getBranch() { if ($this->branch) { return $this->branch; } if ($this->repository) { return $this->repository->getDefaultBranch(); } throw new Exception("Unable to determine branch!"); } public function getCommit() { if ($this->commit) { return $this->commit; } - return $this->getBranch(); + + if ($this->repository->isWorkingCopyBare()) { + return $this->getBranch(); + } else { + $remote = DiffusionBranchInformation::DEFAULT_GIT_REMOTE; + return $remote.'/'.$this->getBranch(); + } } }