diff --git a/src/applications/differential/controller/DifferentialDiffViewController.php b/src/applications/differential/controller/DifferentialDiffViewController.php
index b923afd64a..c8145104d1 100644
--- a/src/applications/differential/controller/DifferentialDiffViewController.php
+++ b/src/applications/differential/controller/DifferentialDiffViewController.php
@@ -24,82 +24,75 @@ final class DifferentialDiffViewController extends DifferentialController {
return new Aphront404Response();
}
- $error_view = id(new PHUIErrorView())
- ->setSeverity(PHUIErrorView::SEVERITY_NOTICE);
if ($diff->getRevisionID()) {
- $error_view->appendChild(
- pht(
- 'This diff belongs to revision %s.',
- phutil_tag(
- 'a',
- array(
- 'href' => '/D'.$diff->getRevisionID(),
- ),
- 'D'.$diff->getRevisionID())));
- } else {
- // TODO: implement optgroup support in AphrontFormSelectControl?
- $select = array();
- $select[] = hsprintf('');
-
- $revisions = id(new DifferentialRevisionQuery())
- ->setViewer($viewer)
- ->withAuthors(array($viewer->getPHID()))
- ->withStatus(DifferentialRevisionQuery::STATUS_OPEN)
- ->execute();
-
- if ($revisions) {
- $select[] = hsprintf(
- '');
- }
-
- $select = phutil_tag(
- 'select',
- array('name' => 'revisionID'),
- $select);
-
- $form = id(new AphrontFormView())
- ->setUser($request->getUser())
- ->setAction('/differential/revision/edit/')
- ->addHiddenInput('diffID', $diff->getID())
- ->addHiddenInput('viaDiffView', 1)
- ->addHiddenInput(
- id(new DifferentialRepositoryField())->getFieldKey(),
- $diff->getRepositoryPHID())
- ->appendRemarkupInstructions(
- pht(
- 'Review the diff for correctness. When you are satisfied, either '.
- '**create a new revision** or **update an existing revision**.'))
- ->appendChild(
- id(new AphrontFormMarkupControl())
- ->setLabel(pht('Attach To'))
- ->setValue($select))
- ->appendChild(
- id(new AphrontFormSubmitControl())
- ->setValue(pht('Continue')));
-
- $error_view->appendChild($form);
+ return id(new AphrontRedirectResponse())
+ ->setURI('/D'.$diff->getRevisionID().'?id='.$diff->getID());
}
+ $error_view = id(new PHUIErrorView())
+ ->setSeverity(PHUIErrorView::SEVERITY_NOTICE);
+ // TODO: implement optgroup support in AphrontFormSelectControl?
+ $select = array();
+ $select[] = hsprintf('');
+
+ $revisions = id(new DifferentialRevisionQuery())
+ ->setViewer($viewer)
+ ->withAuthors(array($viewer->getPHID()))
+ ->withStatus(DifferentialRevisionQuery::STATUS_OPEN)
+ ->execute();
+
+ if ($revisions) {
+ $select[] = hsprintf(
+ '');
+ }
+
+ $select = phutil_tag(
+ 'select',
+ array('name' => 'revisionID'),
+ $select);
+
+ $form = id(new AphrontFormView())
+ ->setUser($request->getUser())
+ ->setAction('/differential/revision/edit/')
+ ->addHiddenInput('diffID', $diff->getID())
+ ->addHiddenInput('viaDiffView', 1)
+ ->addHiddenInput(
+ id(new DifferentialRepositoryField())->getFieldKey(),
+ $diff->getRepositoryPHID())
+ ->appendRemarkupInstructions(
+ pht(
+ 'Review the diff for correctness. When you are satisfied, either '.
+ '**create a new revision** or **update an existing revision**.'))
+ ->appendChild(
+ id(new AphrontFormMarkupControl())
+ ->setLabel(pht('Attach To'))
+ ->setValue($select))
+ ->appendChild(
+ id(new AphrontFormSubmitControl())
+ ->setValue(pht('Continue')));
+
+ $error_view->appendChild($form);
+
$props = id(new DifferentialDiffProperty())->loadAllWhere(
- 'diffID = %d',
+ 'diffID = %d',
$diff->getID());
$props = mpull($props, 'getData', 'getName');
diff --git a/src/applications/differential/view/DifferentialRevisionUpdateHistoryView.php b/src/applications/differential/view/DifferentialRevisionUpdateHistoryView.php
index ae4f640440..4f99c19c7d 100644
--- a/src/applications/differential/view/DifferentialRevisionUpdateHistoryView.php
+++ b/src/applications/differential/view/DifferentialRevisionUpdateHistoryView.php
@@ -62,6 +62,7 @@ final class DifferentialRevisionUpdateHistoryView extends AphrontView {
}
$max_id = $diff->getID();
+ $revision_id = $diff->getRevisionID();
$idx = 0;
$rows = array();
@@ -169,12 +170,21 @@ final class DifferentialRevisionUpdateHistoryView extends AphrontView {
}
$last_base = $base;
- $id_link = phutil_tag(
- 'a',
- array(
- 'href' => '/differential/diff/'.$id.'/',
- ),
- $id);
+ if ($revision_id) {
+ $id_link = phutil_tag(
+ 'a',
+ array(
+ 'href' => '/D'.$revision_id.'?id='.$id,
+ ),
+ $id);
+ } else {
+ $id_link = phutil_tag(
+ 'a',
+ array(
+ 'href' => '/differential/diff/'.$id.'/',
+ ),
+ $id);
+ }
$rows[] = array(
$name,
diff --git a/src/applications/differential/view/DifferentialTransactionView.php b/src/applications/differential/view/DifferentialTransactionView.php
index 443a4d23c4..3312f717c7 100644
--- a/src/applications/differential/view/DifferentialTransactionView.php
+++ b/src/applications/differential/view/DifferentialTransactionView.php
@@ -143,15 +143,13 @@ final class DifferentialTransactionView
$is_visible = ($changeset_diff_id == $visible_diff_id);
if (!$is_visible) {
- $item['where'] = pht('(On Diff #%d)', $changeset_diff_id);
-
$revision_id = $this->getRevision()->getID();
$comment_id = $comment->getID();
-
$item['href'] =
'/D'.$revision_id.
'?id='.$changeset_diff_id.
'#inline-'.$comment_id;
+ $item['where'] = pht('(On Diff #%d)', $changeset_diff_id);
}
$items[] = $item;