mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-30 16:38:21 +01:00
Differential - stop showing the shield for "move away" operations
Summary: The shield is just confusing. In one case it doesn't work, and in the other case it just shows you a copy of the file you can see just below except in red. Fixes T4599, T1211. Note T1211 proposed not showing the "move away" file **at all** but I think removing the shield fixes the source of confusion. The code here is a bit if / else if / else if... heavy but this is logically sound. Test Plan: made a diff where i moved a file then edited it in the new location. viewed diff, saw confusing shield, dropped caches, applied patch, viewed diff and saw no shield. made a diff where I moved a file and didn't edit in new location and saw similar shield disappearness. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T1211, T4599 Differential Revision: https://secure.phabricator.com/D10865
This commit is contained in:
parent
e7b6d332e9
commit
dc1106a9b9
1 changed files with 10 additions and 0 deletions
|
@ -90,6 +90,7 @@ final class DifferentialChangesetParser {
|
||||||
const ATTR_DELETED = 'attr:deleted';
|
const ATTR_DELETED = 'attr:deleted';
|
||||||
const ATTR_UNCHANGED = 'attr:unchanged';
|
const ATTR_UNCHANGED = 'attr:unchanged';
|
||||||
const ATTR_WHITELINES = 'attr:white';
|
const ATTR_WHITELINES = 'attr:white';
|
||||||
|
const ATTR_MOVEAWAY = 'attr:moveaway';
|
||||||
|
|
||||||
const LINES_CONTEXT = 8;
|
const LINES_CONTEXT = 8;
|
||||||
|
|
||||||
|
@ -438,6 +439,10 @@ final class DifferentialChangesetParser {
|
||||||
return idx($this->specialAttributes, self::ATTR_WHITELINES, false);
|
return idx($this->specialAttributes, self::ATTR_WHITELINES, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isMoveAway() {
|
||||||
|
return idx($this->specialAttributes, self::ATTR_MOVEAWAY, false);
|
||||||
|
}
|
||||||
|
|
||||||
private function applyIntraline(&$render, $intra, $corpus) {
|
private function applyIntraline(&$render, $intra, $corpus) {
|
||||||
|
|
||||||
foreach ($render as $key => $text) {
|
foreach ($render as $key => $text) {
|
||||||
|
@ -594,6 +599,7 @@ final class DifferentialChangesetParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$moveaway = false;
|
||||||
$changetype = $this->changeset->getChangeType();
|
$changetype = $this->changeset->getChangeType();
|
||||||
if ($changetype == DifferentialChangeType::TYPE_MOVE_AWAY) {
|
if ($changetype == DifferentialChangeType::TYPE_MOVE_AWAY) {
|
||||||
// sometimes we show moved files as unchanged, sometimes deleted,
|
// sometimes we show moved files as unchanged, sometimes deleted,
|
||||||
|
@ -601,12 +607,14 @@ final class DifferentialChangesetParser {
|
||||||
// destination of the move. Rather than make a false claim,
|
// destination of the move. Rather than make a false claim,
|
||||||
// omit the 'not changed' notice if this is the source of a move
|
// omit the 'not changed' notice if this is the source of a move
|
||||||
$unchanged = false;
|
$unchanged = false;
|
||||||
|
$moveaway = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->setSpecialAttributes(array(
|
$this->setSpecialAttributes(array(
|
||||||
self::ATTR_UNCHANGED => $unchanged,
|
self::ATTR_UNCHANGED => $unchanged,
|
||||||
self::ATTR_DELETED => $hunk_parser->getIsDeleted(),
|
self::ATTR_DELETED => $hunk_parser->getIsDeleted(),
|
||||||
self::ATTR_WHITELINES => !$hunk_parser->getHasTextChanges(),
|
self::ATTR_WHITELINES => !$hunk_parser->getHasTextChanges(),
|
||||||
|
self::ATTR_MOVEAWAY => $moveaway,
|
||||||
));
|
));
|
||||||
|
|
||||||
$hunk_parser->generateIntraLineDiffs();
|
$hunk_parser->generateIntraLineDiffs();
|
||||||
|
@ -775,6 +783,8 @@ final class DifferentialChangesetParser {
|
||||||
$shield = $renderer->renderShield(
|
$shield = $renderer->renderShield(
|
||||||
pht('The contents of this file were not changed.'),
|
pht('The contents of this file were not changed.'),
|
||||||
$type);
|
$type);
|
||||||
|
} else if ($this->isMoveAway()) {
|
||||||
|
$shield = null;
|
||||||
} else if ($this->isWhitespaceOnly()) {
|
} else if ($this->isWhitespaceOnly()) {
|
||||||
$shield = $renderer->renderShield(
|
$shield = $renderer->renderShield(
|
||||||
pht('This file was changed only by adding or removing whitespace.'),
|
pht('This file was changed only by adding or removing whitespace.'),
|
||||||
|
|
Loading…
Add table
Reference in a new issue