Ditch support for original wikidiff
authorMax Semenik <maxsem.wiki@gmail.com>
Fri, 4 Mar 2016 07:04:30 +0000 (23:04 -0800)
committerMax Semenik <maxsem.wiki@gmail.com>
Fri, 4 Mar 2016 20:47:59 +0000 (12:47 -0800)
It's been unmaintained for a while and does not support
various languages adequately.
Also, document $wgExternalDiffEngine.

Change-Id: Ia8aeffd79d550fb7a1a7121456940446eea8bd4f

RELEASE-NOTES-1.27
includes/DefaultSettings.php
includes/diff/DifferenceEngine.php

index b8ec76d..437f8e6 100644 (file)
@@ -322,6 +322,8 @@ changes to languages because of Phabricator reports.
 * ContentHandler::supportsCategories method added. Default is true.
   CategoryMembershipChangeJob updates are skipped for content that
   does not support categories.
+* wikidiff difference engine is no longer supported, anyone still using it are encouraged
+  to upgrade to wikidiff2 which is actively maintained and has better package availability.
 
 == Compatibility ==
 
index e7c8651..27193fb 100644 (file)
@@ -7744,7 +7744,11 @@ $wgUpdateRowsPerQuery = 100;
  */
 
 /**
- * Name of the external diff engine to use
+ * Name of the external diff engine to use. Supported values:
+ * * false: default PHP implementation, DairikiDiff
+ * * 'wikidiff2': Wikimedia's fast difference engine implemented as a PHP/HHVM module
+ * * 'wikidiff3': newer PHP-based difference engine
+ * * any other string is treated as a path to external diff executable
  */
 $wgExternalDiffEngine = false;
 
index 99eefc0..622137a 100644 (file)
@@ -847,14 +847,9 @@ class DifferenceEngine extends ContextSource {
                $otext = str_replace( "\r\n", "\n", $otext );
                $ntext = str_replace( "\r\n", "\n", $ntext );
 
-               if ( $wgExternalDiffEngine == 'wikidiff' && function_exists( 'wikidiff_do_diff' ) ) {
-                       # For historical reasons, external diff engine expects
-                       # input text to be HTML-escaped already
-                       $otext = htmlspecialchars( $wgContLang->segmentForDiff( $otext ) );
-                       $ntext = htmlspecialchars( $wgContLang->segmentForDiff( $ntext ) );
-
-                       return $wgContLang->unsegmentForDiff( wikidiff_do_diff( $otext, $ntext, 2 ) ) .
-                       $this->debug( 'wikidiff1' );
+               if ( $wgExternalDiffEngine == 'wikidiff' ) {
+                       wfDeprecated( 'wikidiff support', '1.27' );
+                       $wgExternalDiffEngine = false;
                }
 
                if ( $wgExternalDiffEngine == 'wikidiff2' && function_exists( 'wikidiff2_do_diff' ) ) {