Skip to content

Commit 1b0af44

Browse files
authored
Merge pull request #143 from romellem/fix-timestamp-strip
Fix regex to strip timestamp when timezone is behind GMT
2 parents 2059fd4 + 5215321 commit 1b0af44

File tree

2 files changed

+32
-21
lines changed

2 files changed

+32
-21
lines changed

src/diff-parser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@
435435
// Cleanup timestamps generated by the unified diff (diff command) as specified in
436436
// https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Unified.html
437437
// Ie: 2016-10-25 11:37:14.000000000 +0200
438-
filename = filename.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? \+\d{4}.*$/, '');
438+
filename = filename.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [-+]\d{4}.*$/, '');
439439
}
440440

441441
return filename;

test/diff-parser-tests.js

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -400,27 +400,38 @@ describe('DiffParser', function() {
400400
});
401401

402402
it('should parse unified non git diff and strip timestamps off the headers', function() {
403-
var diff =
404-
'--- a/sample.js 2016-10-25 11:37:14.000000000 +0200\n' +
405-
'+++ b/sample.js 2016-10-25 11:37:14.000000000 +0200\n' +
406-
'@@ -1 +1,2 @@\n' +
407-
'-test\n' +
408-
'+test1r\n' +
409-
'+test2r\n';
410-
411-
var result = DiffParser.generateDiffJson(diff);
412-
var file1 = result[0];
413-
assert.equal(1, result.length);
414-
assert.equal(2, file1.addedLines);
415-
assert.equal(1, file1.deletedLines);
416-
assert.equal('sample.js', file1.oldName);
417-
assert.equal('sample.js', file1.newName);
418-
assert.equal(1, file1.blocks.length);
419-
420-
var linesContent = file1.blocks[0].lines.map(function(line) {
421-
return line.content;
403+
var diffs = [
404+
// 2 hours ahead of GMT
405+
'--- a/sample.js 2016-10-25 11:37:14.000000000 +0200\n' +
406+
'+++ b/sample.js 2016-10-25 11:37:14.000000000 +0200\n' +
407+
'@@ -1 +1,2 @@\n' +
408+
'-test\n' +
409+
'+test1r\n' +
410+
'+test2r\n',
411+
// 2 hours behind GMT
412+
'--- a/sample.js 2016-10-25 11:37:14.000000000 -0200\n' +
413+
'+++ b/sample.js 2016-10-25 11:37:14.000000000 -0200\n' +
414+
'@@ -1 +1,2 @@\n' +
415+
'-test\n' +
416+
'+test1r\n' +
417+
'+test2r\n'
418+
];
419+
420+
diffs.forEach(function(diff) {
421+
var result = DiffParser.generateDiffJson(diff);
422+
var file1 = result[0];
423+
assert.equal(1, result.length);
424+
assert.equal(2, file1.addedLines);
425+
assert.equal(1, file1.deletedLines);
426+
assert.equal('sample.js', file1.oldName);
427+
assert.equal('sample.js', file1.newName);
428+
assert.equal(1, file1.blocks.length);
429+
430+
var linesContent = file1.blocks[0].lines.map(function(line) {
431+
return line.content;
432+
});
433+
assert.deepEqual(linesContent, ['-test', '+test1r', '+test2r']);
422434
});
423-
assert.deepEqual(linesContent, ['-test', '+test1r', '+test2r']);
424435
});
425436

426437
it('should parse unified non git diff', function() {

0 commit comments

Comments
 (0)