Merge pull request #105 from rtfpessoa/add-another-binary-pattern
Add another way to recognize git binary file names
This commit is contained in:
commit
a4f7fa9bcd
3 changed files with 61 additions and 2 deletions
|
|
@ -195,6 +195,8 @@
|
||||||
var dissimilarityIndex = /^dissimilarity index (\d+)%/;
|
var dissimilarityIndex = /^dissimilarity index (\d+)%/;
|
||||||
var index = /^index ([0-9a-z]+)\.\.([0-9a-z]+)\s*(\d{6})?/;
|
var index = /^index ([0-9a-z]+)\.\.([0-9a-z]+)\s*(\d{6})?/;
|
||||||
|
|
||||||
|
var binaryFiles = /^Binary files (.*) and (.*) differ/;
|
||||||
|
|
||||||
/* Combined Diff */
|
/* Combined Diff */
|
||||||
var combinedIndex = /^index ([0-9a-z]+),([0-9a-z]+)\.\.([0-9a-z]+)/;
|
var combinedIndex = /^index ([0-9a-z]+),([0-9a-z]+)\.\.([0-9a-z]+)/;
|
||||||
var combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/;
|
var combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/;
|
||||||
|
|
@ -324,6 +326,10 @@
|
||||||
currentFile.newName = values[1];
|
currentFile.newName = values[1];
|
||||||
}
|
}
|
||||||
currentFile.isRename = true;
|
currentFile.isRename = true;
|
||||||
|
} else if ((values = binaryFiles.exec(line))) {
|
||||||
|
currentFile.isBinary = true;
|
||||||
|
currentFile.oldName = _getFilename(null, values[1], [config.srcPrefix]);
|
||||||
|
currentFile.newName = _getFilename(null, values[2], [config.dstPrefix]);
|
||||||
} else if ((values = similarityIndex.exec(line))) {
|
} else if ((values = similarityIndex.exec(line))) {
|
||||||
currentFile.unchangedPercentage = values[1];
|
currentFile.unchangedPercentage = values[1];
|
||||||
} else if ((values = dissimilarityIndex.exec(line))) {
|
} else if ((values = dissimilarityIndex.exec(line))) {
|
||||||
|
|
@ -383,7 +389,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function _getFilename(linePrefix, line, prefixes) {
|
function _getFilename(linePrefix, line, prefixes) {
|
||||||
var FilenameRegExp = new RegExp('^' + linePrefix + ' "?(.+?)"?$');
|
var FilenameRegExp;
|
||||||
|
if (linePrefix) {
|
||||||
|
FilenameRegExp = new RegExp('^' + linePrefix + ' "?(.+?)"?$');
|
||||||
|
} else {
|
||||||
|
FilenameRegExp = new RegExp('^"?(.+?)"?$');
|
||||||
|
}
|
||||||
|
|
||||||
var filename;
|
var filename;
|
||||||
var values = FilenameRegExp.exec(line);
|
var values = FilenameRegExp.exec(line);
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
var cfg = config || {};
|
var cfg = config || {};
|
||||||
cfg.inputFormat = 'json';
|
cfg.inputFormat = 'json';
|
||||||
var $target = this._getTarget(targetId);
|
var $target = this._getTarget(targetId);
|
||||||
$target.html(Diff2Html.getPrettyHtml(diffJson, cfg.inputFormat));
|
$target.html(Diff2Html.getPrettyHtml(diffJson, cfg));
|
||||||
|
|
||||||
synchronisedScroll($target, cfg);
|
synchronisedScroll($target, cfg);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -573,5 +573,53 @@ describe('DiffParser', function() {
|
||||||
assert.deepEqual(linesContent,
|
assert.deepEqual(linesContent,
|
||||||
[' function foo() {', '-var bar = "Whoops!";', '+var baz = "Whoops!";', ' }', ' ']);
|
[' function foo() {', '-var bar = "Whoops!";', '+var baz = "Whoops!";', ' }', ' ']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should parse diff with prefix', function() {
|
||||||
|
var diff =
|
||||||
|
'diff --git "\tTest.scala" "\tScalaTest.scala"\n' +
|
||||||
|
'similarity index 88%\n' +
|
||||||
|
'rename from Test.scala\n' +
|
||||||
|
'rename to ScalaTest.scala\n' +
|
||||||
|
'index 7d1f9bf..8b13271 100644\n' +
|
||||||
|
'--- "\tTest.scala"\n' +
|
||||||
|
'+++ "\tScalaTest.scala"\n' +
|
||||||
|
'@@ -1,6 +1,8 @@\n' +
|
||||||
|
' class Test {\n' +
|
||||||
|
' \n' +
|
||||||
|
' def method1 = ???\n' +
|
||||||
|
'+\n' +
|
||||||
|
'+ def method2 = ???\n' +
|
||||||
|
' \n' +
|
||||||
|
' def myMethod = ???\n' +
|
||||||
|
' \n' +
|
||||||
|
'@@ -10,7 +12,6 @@ class Test {\n' +
|
||||||
|
' \n' +
|
||||||
|
' def + = ???\n' +
|
||||||
|
' \n' +
|
||||||
|
'- def |> = ???\n' +
|
||||||
|
' \n' +
|
||||||
|
' }\n' +
|
||||||
|
' \n' +
|
||||||
|
'diff --git "\ttardis.png" "\ttardis.png"\n' +
|
||||||
|
'new file mode 100644\n' +
|
||||||
|
'index 0000000..d503a29\n' +
|
||||||
|
'Binary files /dev/null and "\ttardis.png" differ\n';
|
||||||
|
|
||||||
|
var result = DiffParser.generateDiffJson(diff, {'srcPrefix': '\t', 'dstPrefix': '\t'});
|
||||||
|
assert.equal(2, result.length);
|
||||||
|
|
||||||
|
var file1 = result[0];
|
||||||
|
assert.equal(2, file1.addedLines);
|
||||||
|
assert.equal(1, file1.deletedLines);
|
||||||
|
assert.equal('Test.scala', file1.oldName);
|
||||||
|
assert.equal('ScalaTest.scala', file1.newName);
|
||||||
|
assert.equal(2, file1.blocks.length);
|
||||||
|
assert.equal(8, file1.blocks[0].lines.length);
|
||||||
|
assert.equal(7, file1.blocks[1].lines.length);
|
||||||
|
|
||||||
|
var file2 = result[1];
|
||||||
|
assert.equal('/dev/null', file2.oldName);
|
||||||
|
assert.equal('tardis.png', file2.newName);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue