CVS: List all files changed between tags (or dates)

Viewed 83720

Is there any way to list all the files that have changed between two tags in CVS?

Every time we do a release we apply a tag to all the files in that release. I want to find all the files that changed between releases.

It would also work if I could find all files that had changed between two dates.

7 Answers

I suppose this command would help:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs

where RELEASE_1_0 and RELEASE_1_1 are the names of your tags.

You can find a little more information on cvs diff command here

plus it should be fairly simple to create a script to make report more suitbable for your needs, ex: number of files changed, created deleted etc. As far as I know the most common cvs GUI tools (wincvs and tortoise) do not provide something like this out of the box.

Hope it helps ;)

I prefer using rdiff and -s option

cvs rdiff -s  -r RELEASE_1_0 -r RELEASE_1_1 module > diffs

rdiff does not require a sandbox; -s gives you a summary of the changes.

DLira's method gives a lot of detail, including all the changes.

To just get a list of files, this works:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs

The best tool I've found for this is a perl script called cvs2cl.pl. This can generate a change list in several different formats. It has many different options, but I've used the tag-to-tag options like this:

cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8

or

cvs2cl.pl --delta dev_release_1_2_3:HEAD

I have also done comparisons using dates with the same tool.

Related