Page MenuHomePhabricator

D18832.diff
No OneTemporary

D18832.diff

diff --git a/src/applications/differential/editor/DifferentialTransactionEditor.php b/src/applications/differential/editor/DifferentialTransactionEditor.php
--- a/src/applications/differential/editor/DifferentialTransactionEditor.php
+++ b/src/applications/differential/editor/DifferentialTransactionEditor.php
@@ -132,12 +132,14 @@
$diff = $this->requireDiff($xaction->getNewValue());
- $object->setLineCount($diff->getLineCount());
+ $this->updateRevisionLineCounts($object, $diff);
+
if ($this->repositoryPHIDOverride !== false) {
$object->setRepositoryPHID($this->repositoryPHIDOverride);
} else {
$object->setRepositoryPHID($diff->getRepositoryPHID());
}
+
$object->attachActiveDiff($diff);
$object->setActiveDiffPHID($diff->getPHID());
return;
@@ -1645,5 +1647,25 @@
return true;
}
+ private function updateRevisionLineCounts(
+ DifferentialRevision $revision,
+ DifferentialDiff $diff) {
+
+ $revision->setLineCount($diff->getLineCount());
+
+ $conn = $revision->establishConnection('r');
+
+ $row = queryfx_one(
+ $conn,
+ 'SELECT SUM(addLines) A, SUM(delLines) D FROM %T
+ WHERE diffID = %d',
+ id(new DifferentialChangeset())->getTableName(),
+ $diff->getID());
+
+ if ($row) {
+ $revision->setAddedLineCount((int)$row['A']);
+ $revision->setRemovedLineCount((int)$row['D']);
+ }
+ }
}
diff --git a/src/applications/differential/storage/DifferentialRevision.php b/src/applications/differential/storage/DifferentialRevision.php
--- a/src/applications/differential/storage/DifferentialRevision.php
+++ b/src/applications/differential/storage/DifferentialRevision.php
@@ -61,6 +61,8 @@
const PROPERTY_CLOSED_FROM_ACCEPTED = 'wasAcceptedBeforeClose';
const PROPERTY_DRAFT_HOLD = 'draft.hold';
const PROPERTY_HAS_BROADCAST = 'draft.broadcast';
+ const PROPERTY_LINES_ADDED = 'lines.added';
+ const PROPERTY_LINES_REMOVED = 'lines.removed';
public static function initializeNewRevision(PhabricatorUser $actor) {
$app = id(new PhabricatorApplicationQuery())
@@ -728,6 +730,21 @@
return $this->setProperty(self::PROPERTY_HAS_BROADCAST, $has_broadcast);
}
+ public function setAddedLineCount($count) {
+ return $this->setProperty(self::PROPERTY_LINES_ADDED, $count);
+ }
+
+ public function getAddedLineCount() {
+ return $this->getProperty(self::PROPERTY_LINES_ADDED);
+ }
+
+ public function setRemovedLineCount($count) {
+ return $this->setProperty(self::PROPERTY_LINES_REMOVED, $count);
+ }
+
+ public function getRemovedLineCount() {
+ return $this->getProperty(self::PROPERTY_LINES_REMOVED);
+ }
public function loadActiveBuilds(PhabricatorUser $viewer) {
$diff = $this->getActiveDiff();

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 22, 11:59 AM (6 d, 7 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7383335
Default Alt Text
D18832.diff (2 KB)

Event Timeline