[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Avoid unnecessary diffing/patching in SubmitEntityAction

2016-10-18 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Avoid unnecessary diffing/patching in SubmitEntityAction
..


Avoid unnecessary diffing/patching in SubmitEntityAction

Bug: T147631
Change-Id: Ib942de3c6a7f15dca118c9daa6a5bf8e5fea753b
---
M repo/includes/Actions/SubmitEntityAction.php
1 file changed, 30 insertions(+), 11 deletions(-)

Approvals:
  Jonas Kress (WMDE): Looks good to me, but someone else must approve
  Addshore: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/includes/Actions/SubmitEntityAction.php 
b/repo/includes/Actions/SubmitEntityAction.php
index 46fcc1a..bf024b3 100644
--- a/repo/includes/Actions/SubmitEntityAction.php
+++ b/repo/includes/Actions/SubmitEntityAction.php
@@ -111,18 +111,8 @@
 * @var Revision $latestRevision
 */
list( $olderRevision, $newerRevision, $latestRevision ) = 
$revisions->getValue();
-
-   /**
-* @var EntityContent $latestContent
-* @var EntityContent $olderContent
-* @var EntityContent $newerContent
-*/
-   $olderContent = $olderRevision->getContent();
-   $newerContent = $newerRevision->getContent();
+   $patchedContent = $this->getPatchContent( $olderRevision, 
$newerRevision, $latestRevision );
$latestContent = $latestRevision->getContent();
-
-   $diff = $newerContent->getDiff( $olderContent );
-   $patchedContent = $latestContent->getPatchedCopy( $diff );
 
if ( $patchedContent->equals( $latestContent ) ) {
$status = Status::newGood();
@@ -148,6 +138,35 @@
}
 
/**
+* @param Revision $olderRevision
+* @param Revision $newerRevision
+* @param Revision $latestRevision
+*
+* @return EntityContent
+*/
+   private function getPatchContent(
+   Revision $olderRevision,
+   Revision $newerRevision,
+   Revision $latestRevision
+   ) {
+   /**
+* @var EntityContent $olderContent
+* @var EntityContent $newerContent
+* @var EntityContent $latestContent
+*/
+   $olderContent = $olderRevision->getContent();
+   $newerContent = $newerRevision->getContent();
+   $latestContent = $latestRevision->getContent();
+
+   // Skip diffing and patching when possible for performance 
reasons
+   if ( $newerRevision->getId() === $latestRevision->getId() ) {
+   return $olderContent;
+   }
+
+   return $latestContent->getPatchedCopy( $newerContent->getDiff( 
$olderContent ) );
+   }
+
+   /**
 * @param string $actionName
 * @param Revision $revision
 * @param string $userSummary

-- 
To view, visit https://gerrit.wikimedia.org/r/316310
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib942de3c6a7f15dca118c9daa6a5bf8e5fea753b
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) 
Gerrit-Reviewer: Addshore 
Gerrit-Reviewer: Aude 
Gerrit-Reviewer: Hoo man 
Gerrit-Reviewer: Jonas Kress (WMDE) 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Avoid unnecessary diffing/patching in SubmitEntityAction

2016-10-17 Thread WMDE
Thiemo Mättig (WMDE) has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/316310

Change subject: Avoid unnecessary diffing/patching in SubmitEntityAction
..

Avoid unnecessary diffing/patching in SubmitEntityAction

Bug: T147631
Change-Id: Ib942de3c6a7f15dca118c9daa6a5bf8e5fea753b
---
M repo/includes/Actions/SubmitEntityAction.php
1 file changed, 30 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/10/316310/1

diff --git a/repo/includes/Actions/SubmitEntityAction.php 
b/repo/includes/Actions/SubmitEntityAction.php
index 46fcc1a..95291e2 100644
--- a/repo/includes/Actions/SubmitEntityAction.php
+++ b/repo/includes/Actions/SubmitEntityAction.php
@@ -111,18 +111,8 @@
 * @var Revision $latestRevision
 */
list( $olderRevision, $newerRevision, $latestRevision ) = 
$revisions->getValue();
-
-   /**
-* @var EntityContent $latestContent
-* @var EntityContent $olderContent
-* @var EntityContent $newerContent
-*/
-   $olderContent = $olderRevision->getContent();
-   $newerContent = $newerRevision->getContent();
+   $patchedContent = $this->patchContent( $olderRevision, 
$newerRevision, $latestRevision );
$latestContent = $latestRevision->getContent();
-
-   $diff = $newerContent->getDiff( $olderContent );
-   $patchedContent = $latestContent->getPatchedCopy( $diff );
 
if ( $patchedContent->equals( $latestContent ) ) {
$status = Status::newGood();
@@ -148,6 +138,35 @@
}
 
/**
+* @param Revision $olderRevision
+* @param Revision $newerRevision
+* @param Revision $latestRevision
+*
+* @return EntityContent
+*/
+   private function patchContent(
+   Revision $olderRevision,
+   Revision $newerRevision,
+   Revision $latestRevision
+   ) {
+   /**
+* @var EntityContent $olderContent
+* @var EntityContent $newerContent
+* @var EntityContent $latestContent
+*/
+   $olderContent = $olderRevision->getContent();
+   $newerContent = $newerRevision->getContent();
+   $latestContent = $latestRevision->getContent();
+
+   // Skip diffing and patching when possible for performance 
reasons
+   if ( $newerRevision->getId() === $latestRevision->getId() ) {
+   return $latestContent;
+   }
+
+   return $latestContent->getPatchedCopy( $newerContent->getDiff( 
$olderContent ) );
+   }
+
+   /**
 * @param string $actionName
 * @param Revision $revision
 * @param string $userSummary

-- 
To view, visit https://gerrit.wikimedia.org/r/316310
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib942de3c6a7f15dca118c9daa6a5bf8e5fea753b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits