Page MenuHomePhabricator

Improve, replace and/or rewrite wikidiff(2)
Closed, DeclinedPublic


Over the years there have been a few bugs and enhancement tickets regarding the diff utility we use at Wikimedia.

Opening this bug as a general tracker / reminder for this.

Version: unspecified
Severity: normal



Event Timeline

bzimport raised the priority of this task from to Normal.Nov 21 2014, 11:33 PM
bzimport set Reference to bz29385.
bzimport added a subscriber: Unknown Object (MLST).
Krinkle created this task.Jun 13 2011, 11:03 PM

From BugTriage (Third Week of 2011-06):

JavaScript gadgets can't replace a C++ or php diff system.
Looking for someone to improve the native diff thing?
Brion: Do not implement as a gadget only -- if to be done, should be done in core. If done in JS, do as a module loaded via RL.

What does gnu diff3 have to do with the wikidiff extension?

diff3 is used as an internal helper tool for resolving edit conflicts; its output is either a complete merged edit (gets saved to the wiki as a new revision) or the simple report that automatic merging could not be completed, requiring the user to manually resolve the conflict.

wikidiff and wikidiff2 are C++ PHP extensions implementing 2-level paragraph-based and word-based text diff algorithm and HTML table formatting, used to produce output for the wiki's diff view UI, and compatible with the PHP implementation in MediaWiki.


[[de:User:PerfektesChaos]] asked me to leave a comment here.

Please have a look at his wikidiff2 improvements:


He pleased about comments.


Huh? The bug title doesn't say what is the bug or feature. Please change it.

demon added a comment.Jun 19 2011, 5:11 PM

(In reply to comment #3)

[[de:User:PerfektesChaos]] asked me to leave a comment here.
Please have a look at his wikidiff2 improvements:

Each of these suggestions should be filed as individual bugs if they aren't already (some of them look like they might already be filed).

As far as "replace wikidiff(2)" entirely...that doesn't make any sense per comment 2. If we want to expose the functionality to Javascript, that'd be an enhancement. If we want to fix specific bugs, those are concrete bugs that can be fixed. I think saying "replace the whole thing" is overkill and I'm going to go ahead and WONTFIX on those grounds.

PS: GNU diff3 is unrelated as that comment also points out.