Update: a ChangeLog file is no longer needed for GNOME's needs, but write good git commit messages.

This file lists all the changes that a given module has undergone. Since the move to Git, not all modules use a ChangeLog - See Git/ChangeLog.

In GNOME the ChangeLog is generally of the following form if it exists:

YYYY-MM-DD  Joe Bloggs  <>

        Replace uses of deprecated API (bgo #878372)

        * filename.c (some_function): Use GtkDialog instead of deprecated
        (some_other_function): Use GtkAssistant instead of deprecated
        * otherfilename.c (yetanother_function): Use GtkAbout instead of
        deprecated GnomeAbout.

Not all modules mention the function names, but this can be informative. Note that the initial one-line summary is for various Git tools which expect this.

If a project uses a ChangeLog, you should generally copy the ChangeLog entry for your commit message, starting with the one-line summary, omitting the date/name/email-address line.

There are various tools to help generate ChangeLog entries:

See also DeveloperUtilities.


Shamelessly stolen from

Before long you'll get frustrated with git's handling of ChangeLog merges, which is just as bad as SVN's. But there's a fix for that!

git clone git://
gnulib/gnulib-tool --create-testdir --dir=git-merge-changelog git-merge-changelog
cd git-merge-changelog
./configure --prefix=$HOME/.local
make install
git config --global "GNU-style ChangeLog merge driver"
git config --global merge.merge-changelog.driver "$HOME/.local/bin/git-merge-changelog %O %A %B"

To enable this special merge driver for a git repository clone, set an attribute on the ChangeLog file:

cd yourclone
echo 'ChangeLog merge=merge-changelog' >> ".git/info/attributes"

Attic/ChangeLog (last edited 2022-05-02 23:30:16 by SébastienWilmet)