Viewing changesets in CVS

We’re using CVS for version control in JDeveloper. Today, i’ve been merging some patches made on a maintenance branch into the main trunc, so that these fixes will also be available in the next version of our product.

This is when you start to understand why some people don’t like CVS. CVS doesn’t make it easy to answer the following question: which files did I change for this patch. And it also doesn’t make it easy to merge the changes made for one fix into another branch or the main trunc.

We’ve been using statcvs to get info about what’s going on in CVS. Statcvs generates a commit log which lists all your changes grouped by commit and commit comment. I usually copy the issue number and description from our bug database into the commit comment, so the statcvs commit log shows you a list of bugs fixes, and per bug it shows you which files were changed. But so far i’ve only been able to use statcvs to show the changes on the main trunc, not on any maintenance branches.

I’ve found some other tools which will show you changesets in CVS: CVSMonitor, Fisheye and cvs-exp. I’m currently using cvs-exp. It’s a perl script which uses the output of ‘cvs log’ to create a changeset report.

For example, the following command creates a changeset report for the version 2.0 maintenance branche:

cvs log -rMAINT_2_0 | cvs-exp.pl > cvs-maint_2_0.log

A piece of the resulting report:

==============================================================================

000310:
BRANCH [MAINT_2_0]

(date: 2005/06/27 07:00:35;  author: akoelewijn;  state: Exp;  lines: +12 -2)
  | /fs-public/cvs/.../forms/DpaForm.java,v:1.177.2.2,
  | /fs-public/cvs/.../forms/ReportPanel.java,v:1.18.2.1
  `----------------------------------------

4301 - Reports not displayed when selected in navigation tree

==============================================================================

000311:
BRANCH [MAINT_2_0]

(date: 2005/06/27 07:52:51;  author: akoelewijn;  state: Exp;  lines: +86 -33)
  | /fs-public/cvs/.../forms/LeftLungPanel.java,v:1.38.2.2,
  | /fs-public/cvs/.../forms/RightLungPanel.java,v:1.39.2.2,
  | /fs-public/cvs/.../MessagesBundle.properties,v:1.58.2.4
  `----------------------------------------

2205     Add tool to copy informatio from one lung to another

This shows you that i’ve fixed two issues on the maintenance branche for version 2.0. For issue 4301 i’ve changed two files, and for issue 2205 i’ve changed 3 files. With this info i can apply the fixes on the main trunc, and commit them per fix.

It would be really usefull if JDeveloper could provide a way to report changesets, and even better, if merging a changeset could be done with one click on a button. software development,cvs,version control,changesets

blog comments powered by Disqus