mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-02 01:48:23 +01:00
Fix "left"/"right" changeset ID selection for synthetic deletions
Summary: Fixes T8323. See that task for a description. We were using `nonempty()`, but that rule doesn't cover synthetic deletions (file present in an earlier diff, but no longer present in the later diff). Test Plan: Followed the steps in T8323, got a clean comment. Reviewers: chad Reviewed By: chad Maniphest Tasks: T8323 Differential Revision: https://secure.phabricator.com/D17929
This commit is contained in:
parent
343f7cac72
commit
9eb285f4aa
1 changed files with 20 additions and 4 deletions
|
@ -150,15 +150,31 @@ final class DifferentialChangesetDetailView extends AphrontView {
|
|||
$renderer = DifferentialChangesetHTMLRenderer::getHTMLRendererByKey(
|
||||
$this->getRenderer());
|
||||
|
||||
$changeset_id = $this->changeset->getID();
|
||||
|
||||
$vs_id = $this->getVsChangesetID();
|
||||
if (!$vs_id) {
|
||||
// Showing a changeset normally.
|
||||
$left_id = $changeset_id;
|
||||
$right_id = $changeset_id;
|
||||
} else if ($vs_id == -1) {
|
||||
// Showing a synthetic "deleted" changeset for a file which was
|
||||
// removed between changes.
|
||||
$left_id = $changeset_id;
|
||||
$right_id = null;
|
||||
} else {
|
||||
// Showing a diff-of-diffs.
|
||||
$left_id = $vs_id;
|
||||
$right_id = $changeset_id;
|
||||
}
|
||||
|
||||
return javelin_tag(
|
||||
'div',
|
||||
array(
|
||||
'sigil' => 'differential-changeset',
|
||||
'meta' => array(
|
||||
'left' => nonempty(
|
||||
$this->getVsChangesetID(),
|
||||
$this->changeset->getID()),
|
||||
'right' => $this->changeset->getID(),
|
||||
'left' => $left_id,
|
||||
'right' => $right_id,
|
||||
'renderURI' => $this->getRenderURI(),
|
||||
'whitespace' => $this->getWhitespace(),
|
||||
'highlight' => null,
|
||||
|
|
Loading…
Add table
Reference in a new issue