diff --git a/src/applications/differential/controller/DifferentialChangesetViewController.php b/src/applications/differential/controller/DifferentialChangesetViewController.php index 0c02da5b55..abc19ab836 100644 --- a/src/applications/differential/controller/DifferentialChangesetViewController.php +++ b/src/applications/differential/controller/DifferentialChangesetViewController.php @@ -193,7 +193,11 @@ final class DifferentialChangesetViewController extends DifferentialController { ->setViewer($viewer) ->withRevisionPHIDs(array($revision->getPHID())); $inlines = $query->execute(); - $inlines = $query->adjustInlinesForChangesets($inlines, $old, $new); + $inlines = $query->adjustInlinesForChangesets( + $inlines, + $old, + $new, + $revision); } else { $inlines = array(); } diff --git a/src/applications/differential/controller/DifferentialRevisionViewController.php b/src/applications/differential/controller/DifferentialRevisionViewController.php index 2a645c4d05..5f93b1b0ad 100644 --- a/src/applications/differential/controller/DifferentialRevisionViewController.php +++ b/src/applications/differential/controller/DifferentialRevisionViewController.php @@ -178,7 +178,11 @@ final class DifferentialRevisionViewController extends DifferentialController { ->setViewer($user) ->withRevisionPHIDs(array($revision->getPHID())); $inlines = $query->execute(); - $inlines = $query->adjustInlinesForChangesets($inlines, $old, $new); + $inlines = $query->adjustInlinesForChangesets( + $inlines, + $old, + $new, + $revision); $visible_changesets = array(); foreach ($inlines as $inline) { diff --git a/src/applications/differential/query/DifferentialInlineCommentQuery.php b/src/applications/differential/query/DifferentialInlineCommentQuery.php index a7b2e2f444..899d675f23 100644 --- a/src/applications/differential/query/DifferentialInlineCommentQuery.php +++ b/src/applications/differential/query/DifferentialInlineCommentQuery.php @@ -140,7 +140,8 @@ final class DifferentialInlineCommentQuery public function adjustInlinesForChangesets( array $inlines, array $old, - array $new) { + array $new, + DifferentialRevision $revision) { assert_instances_of($inlines, 'DifferentialInlineComment'); assert_instances_of($old, 'DifferentialChangeset'); @@ -302,6 +303,11 @@ final class DifferentialInlineCommentQuery // If we found a changeset to port this comment to, bring it forward // or backward and mark it. if ($target_id) { + $diff_id = $changeset->getDiffID(); + $inline_id = $inline->getID(); + $revision_id = $revision->getID(); + $href = "/D{$revision_id}?id={$diff_id}#inline-{$inline_id}"; + $inline ->makeEphemeral(true) ->setChangesetID($target_id) @@ -309,6 +315,7 @@ final class DifferentialInlineCommentQuery array( 'new' => $is_new, 'reason' => $reason, + 'href' => $href, )); $results[] = $inline; diff --git a/src/applications/differential/storage/DifferentialRevision.php b/src/applications/differential/storage/DifferentialRevision.php index 77afebd278..74f3ff34d7 100644 --- a/src/applications/differential/storage/DifferentialRevision.php +++ b/src/applications/differential/storage/DifferentialRevision.php @@ -531,7 +531,8 @@ final class DifferentialRevision extends DifferentialDAO $query->adjustInlinesForChangesets( $inlines, array_select_keys($changesets, $old_ids), - array_select_keys($changesets, $new_ids)); + array_select_keys($changesets, $new_ids), + $this); return $timeline ->setChangesets($changesets)