| Index: Source/devtools/front_end/sources/RevisionHistoryView.js
|
| diff --git a/Source/devtools/front_end/sources/RevisionHistoryView.js b/Source/devtools/front_end/sources/RevisionHistoryView.js
|
| index ae7dd7ac8d7e12bae5604cd5a92f9ca2d0635ed3..b2b8e6e56fe0bf4a741c339c1903dad10c26eabc 100644
|
| --- a/Source/devtools/front_end/sources/RevisionHistoryView.js
|
| +++ b/Source/devtools/front_end/sources/RevisionHistoryView.js
|
| @@ -240,40 +240,32 @@ WebInspector.RevisionHistoryTreeElement.prototype = {
|
| */
|
| function step2(baseContent, newContent)
|
| {
|
| - var baseLines = difflib.stringAsLines(baseContent);
|
| - var newLines = difflib.stringAsLines(newContent);
|
| - var sm = new difflib.SequenceMatcher(baseLines, newLines);
|
| - var opcodes = sm.get_opcodes();
|
| + var baseLines = baseContent.split("\n");
|
| + var newLines = newContent.split("\n");
|
| + var opcodes = WebInspector.Diff.lineDiff(baseLines, newLines);
|
| var lastWasSeparator = false;
|
|
|
| + var baseLineNumber = 0;
|
| + var newLineNumber = 0;
|
| for (var idx = 0; idx < opcodes.length; idx++) {
|
| - var code = opcodes[idx];
|
| - var change = code[0];
|
| - var b = code[1];
|
| - var be = code[2];
|
| - var n = code[3];
|
| - var ne = code[4];
|
| - var rowCount = Math.max(be - b, ne - n);
|
| - for (var i = 0; i < rowCount; i++) {
|
| - if (change === "delete" || (change === "replace" && b < be)) {
|
| - var lineNumber = b++;
|
| - this._createLine(lineNumber, null, baseLines[lineNumber], "removed");
|
| - lastWasSeparator = false;
|
| - }
|
| -
|
| - if (change === "insert" || (change === "replace" && n < ne)) {
|
| - var lineNumber = n++;
|
| - this._createLine(null, lineNumber, newLines[lineNumber], "added");
|
| - lastWasSeparator = false;
|
| - }
|
| -
|
| - if (change === "equal") {
|
| - b++;
|
| - n++;
|
| - if (!lastWasSeparator)
|
| - this._createLine(null, null, " \u2026", "separator");
|
| - lastWasSeparator = true;
|
| - }
|
| + var code = opcodes[idx][0];
|
| + var rowCount = opcodes[idx][1].length;
|
| + if (code === WebInspector.Diff.Operation.Equal) {
|
| + baseLineNumber += rowCount;
|
| + newLineNumber += rowCount;
|
| + if (!lastWasSeparator)
|
| + this._createLine(null, null, " \u2026", "separator");
|
| + lastWasSeparator = true;
|
| + } else if (code === WebInspector.Diff.Operation.Delete) {
|
| + lastWasSeparator = false;
|
| + for (var i = 0; i < rowCount; ++i)
|
| + this._createLine(baseLineNumber + i, null, baseLines[baseLineNumber + i], "removed");
|
| + baseLineNumber += rowCount;
|
| + } else if (code === WebInspector.Diff.Operation.Insert) {
|
| + lastWasSeparator = false;
|
| + for (var i = 0; i < rowCount; ++i)
|
| + this._createLine(null, newLineNumber + i, newLines[newLineNumber + i], "added");
|
| + newLineNumber += rowCount;
|
| }
|
| }
|
| }
|
|
|