CVS-log-message-to-ChangeLog Conversion

Getting and using cvs2cl:

You should be able to get a copy of the cvs2cl perl script here. There is sufficient documentation for this out there, so I will not be repeating this stuff here. A slightly modified version, to match my taste, is present here.


Automating the use of cvs2cl:

Here is a script I use for automatically generating the ChangeLog. It generates and updates the ChangeLog file in the main directory of the repository whenever you do a cvs commit. Download it and place it in some location, ($changelog_script_path).

This is what you need to do:

1. Checkout a copy of the CVSROOT

2. Add the following line to your loginfo file:

DEFAULT ($changelog_script_path/changelog.bash %s)

3. You might want to modify the above line if you want this only for specific projects.

4. Modify the changelog.bash script to point to the right cvs2cl perl file (variable CVS2CL).

5. Commit the loginfo file back in.

6. You are all set! :-)


This is by no means a fool-proof usage of the automated script for cvs2cl. Listed here are some of the issues I had noticed in the first few tries; I'm sure there are a lot more.

1. On a cvs commit, the ChangeLog is updated but not checked in. You'll need to do a cvs commit a second time in order to check this back in. I tried automating this, but cvs locks the files on a commit and releases it only after we are done executing this script. So, we can't commit the ChangeLog automatically from within this script.

2. If a ChangeLog file is not present, it is generated. This needs to be manually added into the CVS repository the first time.

3. The ChangeLog file is completely generated every time. Can get quite bugging for large projects.



Pavan Balaji
Last Updated: Mar 04, 2005.