node-diff3
node-diff3 copied to clipboard
Diff is working weird in some scenarios?
Hello,
We are experiencing a really weird behaviour with the following example:
const Diff3 = require('node-diff3');
const templateA = `
$capitalize($possessive([q#3])) Security Policies and Procedures were adopted as of (Date) by
`;
const templateB = `
$capitalize($possessive([q#3])) Security Policies and Procedures were adopted as of [Date] by
123
`;
const original = `
$capitalize($possessive([q#3])) Security Policies and Procedures were adopted as of (Date) by
`
const diffOutput = Diff3.diff3Merge(templateA, original, templateB, { stringSeparator: '\n' });
console.log(diffOutput[0].ok.join('\n'));
console.log(diffOutput);
My expectation from the code above is to get:
$capitalize($possessive([q#3])) Security Policies and Procedures were adopted as of (Date) by
123
However I am getting:
$capitalize($possessive([q#3])) Security Policies and Procedures were adopted as of [Date] by
123
Notice the parenthesis is not being applied to my [Date] piece. Any clue on what's happening? I am expecting to get a conflict but its not happening.
Thanks in advanced.
The behavior seems exactly right to me. Your templateA is unchanged from the original, and your templateB has new parentheses and the number 123. The 3-way merge is then to take templateB and ignore templateA, there is no conflict. Did you perhaps mean to use the different parentheses in the original?