Tuesday, March 08, 2005

Find changed files

Recently I often need to find out what files are different between CVS branches. Because we have CVS tags such as $Id in the source code header, it results in GUI diff tools thinking every source file is changed.

Time to drop to terminal. I use the following command to generate a list of changed file name.

diff -Naur --brief -x CVS -x *.class -x ".*" -I '^[ \t]*\*' source-dir target-dir | awk '{print $2}' > diff_file_list
The interesting option is '-I ^[ \t]*\*', which ignores any line change starts with "*".

No comments: