codechanges(1) General Commands Manual codechanges(1)NAME
codechanges - computes the amount of code changes between two code trees or single files
SYNOPSIS
codechanges [-n] old-directory new-directory
codechanges [-n] old-file new-file
DESCRIPTION
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.
APPLICATIONS
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
DIAGNOSTICS
There aren't many at this time.
BUGS
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.
AUTHOR
Paul Bame
SEE ALSO pmccabe(1), decomment(1)HP 12Feb2003 codechanges(1)
Check Out this Related Man Page
DIFF(1) General Commands Manual DIFF(1)NAME
diff - differential file comparator
SYNOPSIS
diff [ -acefmnbwr ] file1 ... file2
DESCRIPTION
Diff tells what lines must be changed in two files to bring them into agreement. If one file is a directory, then a file in that directory
with basename the same as that of the other file is used. If both files are directories, similarly named files in the two directories are
compared by the method of diff for text files and cmp(1) otherwise. If more than two file names are given, then each argument is compared
to the last argument as above. The -r option causes diff to process similarly named subdirectories recursively. When processing more than
one file, diff prefixes file differences with a single line listing the two differing files, in the form of a diff command line. The -m
flag causes this behavior even when processing single files.
The normal output contains lines of these forms:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
These lines resemble ed commands to convert file1 into file2. The numbers after the letters pertain to file2. In fact, by exchanging `a'
for `d' and reading backward one may ascertain equally how to convert file2 into file1. As in ed, identical pairs where n1 = n2 or n3 = n4
are abbreviated as a single number.
Following each of these lines come all the lines that are affected in the first file flagged by `<', then all the lines that are affected
in the second file flagged by `>'.
The -b option causes trailing blanks (spaces and tabs) to be ignored and other strings of blanks to compare equal. The -w option causes
all white-space to be removed from input lines before applying the difference algorithm.
The -n option prefixes each range with file: and inserts a space around the a, c, and d verbs. The -e option produces a script of a, c and
d commands for the editor ed, which will recreate file2 from file1. The -f option produces a similar script, not useful with ed, in the
opposite order. It may, however, be useful as input to a stream-oriented post-processor.
The -c option includes three lines of context around each change, merging changes whose contexts overlap. The -a flag displays the entire
file as context.
Except in rare circumstances, diff finds a smallest sufficient set of file differences.
FILES
/tmp/diff[12]
SOURCE
/src/cmd/diff
SEE ALSO cmp(1), comm(1), ed(1)DIAGNOSTICS
Exit status is the empty string for no differences, for some, and for trouble.
BUGS
Editing scripts produced under the -e or -f option are naive about creating lines consisting of a single `.'.
When running diff on directories, the notion of what is a text file is open to debate.
DIFF(1)