codechanges − 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