Computes the amount of code changes between two code trees or single files
codechanges [-n] old-directory new-directory
codechanges [-n] old-file new-file
codechanges recursively compares the two named directories (or files) calculating new/deleted/changed lines, not including comments or blank lines, in files which appear to be source files (C, C++, shell, and Makefiles). To include comments and blank lines, use the -n option.
codechanges is purpose designed to measure the amount of code change between milestones in a project's life. The following output is from two stages, plus some artificial test cases, in the pmccabe code stream:
NEW DELETED CHANGED Old File, New File 11 19 4 old.pmccabe/./Makefile pmccabe/./Makefile 214 10 39 old.pmccabe/./cparse.c pmccabe/./cparse.c 463 0 0 NEWFILE pmccabe/./decomment.c 147 4 39 old.pmccabe/./dmain.c pmccabe/./dmain.c 10 0 0 NEWFILE pmccabe/./dmain.h 407 0 0 NEWFILE pmccabe/./getopt.c 48 0 0 NEWFILE pmccabe/./getopt.h 9 18 12 old.pmccabe/./gettoken.c pmccabe/./gettoken.c 18 18 15 old.pmccabe/./io.c pmccabe/./io.c 175 43 20 old.pmccabe/./nmain.c pmccabe/./nmain.c 194 11 22 old.pmccabe/./pmccabe.c pmccabe/./pmccabe.c 42 0 20 old.pmccabe/./pmccabe.h pmccabe/./pmccabe.h 0 1318 0 old.pmccabe/./test/langMode.c DELETED 24 0 0 NEWFILE pmccabe/./test006/Grapher.H 620 0 0 NEWFILE pmccabe/./test006/Handler.H 442 0 0 NEWFILE pmccabe/./test006/NodeArc.H 764 0 0 NEWFILE pmccabe/./w/parser.C 95 0 0 NEWFILE pmccabe/./w/tokens.h 4 0 0 NEWFILE pmccabe/./x.sh 3687 1441 171 TOTAL
There aren't many at this time.
codechanges thinks it knows what source files are interesting and the user may not agree with its choices. It's a script and should be easy to modify. Ultimately this should probably be configurable.
codechanges uses a program called decomment which guesses how to de-comment a file based on its file name and it's not always perfect.
Paul Bame