The default merge driver of 'git' *always* produces conflicts whenpulling public modifications into a privately modified ChangeLog file.This is because ChangeLog files are always modified at the top; thedefault merge driver has no clue how to deal with this. Furthermorethe conflicts are presented with more <<<< ==== >>>> markers thannecessary; this is because the default merge driver makes pointlessefforts to look at the individual line changes inside a ChangeLog entry.

git-merge-changelog program serves as a 'git' merge driver that avoidsthese problems.1. It produces no conflict when ChangeLog entries have been inserted at the top both in the public and in the private modification. It puts the privately added entries above the publicly added entries.2. It respects the structure of ChangeLog files: entries are not split into lines but kept together.3. It also handles the case of small modifications of past ChangeLog entries, or of removed ChangeLog entries: they are merged as one would expect it.4. Conflicts are presented at the top of the file, rather than where they occurred, so that the user will see them immediately. (Unlike for source code written in some programming language, conflict markers that are located several hundreds lines from the top will not cause any syntax error and therefore would be likely to remain unnoticed.)