views:

51

answers:

3

I work for a small company (<10 developers) where we use Svn and to some extent Git. We have no release system implemented. We don't tag our applications with a release numbers so as you can imagine, we don't keep track of changes between releases very well.

With this in mind I've been thinking about generating changelogs from the commit-comments. It doesn't have to be an awful idea if you implement guidelines for how to write comments. Or am I fooling myself thinking that colleagues will follow these guidelines? Most of them don't bother adding comments today but I'm hoping that will change if they become aware of how to formulate themselves and that you don't have to comment on every single commit.

Or would we it be more wise to gather information from our bug/project managing software and write the changelogs manually (which unfortunately is something nobody wants to do)?

+2  A: 

Terrible - people log stuff in interim, needs to be rechanged, change log will have bad comments. It simply will not work.

Better use the bug tacking system to generate a change log - you have a lot more control there that comments are "nice" and make sense.

TomTom
+2  A: 

I would generate a list of comments from the changelog with some scripts. Depending on the source code management system you use, you can setup also rules (or hook scripts in the case of git or svn) to enforce a given format for the log comments. Guidelines are nice but only tool enforced policy will ensure it rocks. This way you can filter out which comments are relevant for release notes and which are just internal things.

Not tagging your releases is a really bad thing. In the case of svn & git tagging is a cheap action no actual data is duplicated, why not do it? Did you think about automating the release/testing process using continuous integration?

jdehaan
A: 

Presumably someone is paying these developers? I'd inform them that this will cease unless they start tagging releases correctly and making proper commit comments.

anon