1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-22 14:52:41 +01:00

make "browse in diffusion" action work for commits in branches other than master

Summary: we do this by passing the "seenOnBranches" commit data detail through the stack

Test Plan: browse in diffusion link worked for non-master checkins under git

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Maniphest Tasks: T1949

Differential Revision: https://secure.phabricator.com/D3853
This commit is contained in:
Bob Trahan 2012-10-31 14:07:25 -07:00
parent 6c36efed72
commit 4edf8ae2fc
3 changed files with 19 additions and 2 deletions

View file

@ -32,9 +32,18 @@ final class DifferentialChangesetListView extends AphrontView {
private $user;
private $symbolIndexes = array();
private $repository;
private $branch;
private $diff;
private $vsMap = array();
public function setBranch($branch) {
$this->branch = $branch;
return $this;
}
private function getBranch() {
return $this->branch;
}
public function setChangesets($changesets) {
$this->changesets = $changesets;
return $this;
@ -257,7 +266,8 @@ final class DifferentialChangesetListView extends AphrontView {
if ($repository) {
$meta['diffusionURI'] = (string)$repository->getDiffusionBrowseURIForPath(
$changeset->getAbsoluteRepositoryPath($repository, $this->diff),
idx($changeset->getMetadata(), 'line:first'));
idx($changeset->getMetadata(), 'line:first'),
$this->getBranch());
}
$change = $changeset->getChangeType();

View file

@ -269,6 +269,10 @@ final class DiffusionCommitController extends DiffusionController {
$change_list->setRenderURI('/diffusion/'.$callsign.'/diff/');
$change_list->setRepository($repository);
$change_list->setUser($user);
// pick the first branch for "Browse in Diffusion" View Option
$branches = $commit_data->getCommitDetail('seenOnBranches');
$first_branch = reset($branches);
$change_list->setBranch($first_branch);
$change_list->setStandaloneURI(
'/diffusion/'.$callsign.'/diff/');

View file

@ -60,11 +60,14 @@ final class PhabricatorRepository extends PhabricatorRepositoryDAO {
return $this;
}
public function getDiffusionBrowseURIForPath($path, $line = null) {
public function getDiffusionBrowseURIForPath($path,
$line = null,
$branch = null) {
$drequest = DiffusionRequest::newFromDictionary(
array(
'repository' => $this,
'path' => $path,
'branch' => $branch,
));
return $drequest->generateURI(