You're viewing a single post. I have much more to say! The main blog page is a good starting point.
Saturday, December 30, 2006 ★ 21:12 ★ Category Gnome
Now that Gnome is about to use Subversion for all its source code repositories, it might be worth rethinking the current ChangeLog policy. The situation until now (CVS) is like this:
cvs commit ChangeLog file.[ch] and duplicate the ChangeLog entry as the commit message. You can use copy/paste; I use a Vim buffer myself. This can also be done with some shell scripting using cvs commit -m "`head -n10 ChangeLog`", but it requires some testing to get the number of lines correct.
However, since Subversion supports proper changesets (instead of per-file revisions), the commit message serves exactly the same purpose as the ChangeLog entry, namely the recording of per-commit change messages (instead of per-file). This means it isn’t necessary anymore to duplicate the commit message, which is a tedious and time-consuming job.
So my question is: should we change the ChangeLog policy now that we have a SCM that allows us poor developers to do The Right Thing? Some issues I’ve come up with so far:
Offline logs: This issue was brought up earlier several times, eg. on the Subversion users mailing list and the Mono mailing list. Some ideas:
Inclusion in tarballs: ChangeLog files can easily be included in tarball releases. No magic needed. This issue can be resolved quite easily with the simple Makefile.am snippet below (passes distcheck). I use it succesfully for my bzr-managed gnome-specimen project.
EXTRA_DIST += ChangeLog
dist-hook:
svn log -v > ChangeLog.new
mv -f ChangeLog.new $(distdir)/ChangeLog
Using svn2cl is probably better, but since I have no experience using it I have just changed this above snippet to use svn log -v instead of bzr log --short.
Random photo from Gouda (December, 2008)
Wouter Bolsterlee, also known as uws, a postmodern geek living in the Netherlands. Read more about me…
Unless stated otherwise, all material on this site is available under a Creative Commons Share-Alike license.