From b75f9fd369b67825e2b27f36c4dae7db9216ef1e Mon Sep 17 00:00:00 2001 From: Raphael Geissert Date: Sun, 3 May 2015 17:21:56 +0200 Subject: [PATCH 1/2] Add createTwoFilesPatch, to be able to use two file names --- diff.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/diff.js b/diff.js index 220408584..881edf0eb 100644 --- a/diff.js +++ b/diff.js @@ -370,13 +370,15 @@ ); }, - createPatch: function(fileName, oldStr, newStr, oldHeader, newHeader) { + createTwoFilesPatch: function(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader) { var ret = []; - ret.push('Index: ' + fileName); + if (oldFileName == newFileName) { + ret.push('Index: ' + oldFileName); + } ret.push('==================================================================='); - ret.push('--- ' + fileName + (typeof oldHeader === 'undefined' ? '' : '\t' + oldHeader)); - ret.push('+++ ' + fileName + (typeof newHeader === 'undefined' ? '' : '\t' + newHeader)); + ret.push('--- ' + oldFileName + (typeof oldHeader === 'undefined' ? '' : '\t' + oldHeader)); + ret.push('+++ ' + newFileName + (typeof newHeader === 'undefined' ? '' : '\t' + newHeader)); var diff = LineDiff.diff(oldStr, newStr); if (!diff[diff.length-1].value) { @@ -455,6 +457,10 @@ return ret.join('\n') + '\n'; }, + createPatch: function(fileName, oldStr, newStr, oldHeader, newHeader) { + return JsDiff.createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader); + }, + applyPatch: function(oldStr, uniDiff) { var diffstr = uniDiff.split('\n'); var diff = []; From beede57817dabd12c735c42222ce65716afe8a08 Mon Sep 17 00:00:00 2001 From: Raphael Geissert Date: Sun, 3 May 2015 17:30:55 +0200 Subject: [PATCH 2/2] Document the new createTwoFilesPatch --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ffaa06070..b867e19a7 100644 --- a/README.md +++ b/README.md @@ -53,15 +53,20 @@ or Returns a list of change objects (See below). -* `JsDiff.createPatch(fileName, oldStr, newStr, oldHeader, newHeader)` - creates a unified diff patch. +* `JsDiff.createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader)` - creates a unified diff patch. Parameters: - * `fileName` : String to be output in the filename sections of the patch + * `oldFileName` : String to be output in the filename section of the patch for the removals + * `newFileName` : String to be output in the filename section of the patch for the additions * `oldStr` : Original string value * `newStr` : New string value * `oldHeader` : Additional information to include in the old file header * `newHeader` : Additional information to include in thew new file header +* `JsDiff.createPatch(fileName, oldStr, newStr, oldHeader, newHeader)` - creates a unified diff patch. + + Just like JsDiff.createTwoFilesPatch, but with oldFileName being equal to newFileName. + * `JsDiff.applyPatch(oldStr, diffStr)` - applies a unified diff patch. Return a string containing new version of provided data.