= Coderev - simple code review tool =
== Overview ==
Code review before check in code changes is a must in most projects, but what
will you do if you want other developers to review your changes? Send them
the diff generated by "svn diff" or "cvs diff" or something else? I beleive
that would bring a lot of pain to the reviewers - raw diffs are difficult to
read when you changed many lines.
Coderev is just the thing you need for effective code review. Coderev is a
quite simple and small toolkit that can
* Compares files/dirs and generates side-by-side html pages
* Generates side-by-side html pages on your SVN working copy
* More (TODO)
== Status ==
Basic function is already implemented on top of python difflib.
== Usage ==
Checkout trunk revision http://code.google.com/p/coderev/source/checkout or
download from http://code.google.com/p/coderev/downloads/list and extract the
tarball to your disk, there are two tools present for you - codediff.py (to
compare files/dirs) and coderev.sh (to generate code review page on your svn
work space).
* codediff.py usage
codediff.py [options] OLD NEW
codediff.py OLD NEW [options]
Diff two files/directories and produce HTML pages.
Options:
-h, --help show this help message and exit
-o OUTPUT, --outupt=OUTPUT
specify output file or directory name
-c, --context generate context diff (default is full diff), only
take effect when diffing two files
-f FILE, --filelist=FILE
specify a file list to read from, filelist can be
generated by find -type f, specify - to read from
stdin
-p NUM, --striplevel=NUM
for all pathnames in the filelist, delete NUM path
name components from the beginning of each path name,
it is similar to patch(1) -p
-n NUM, --lines=NUM specify context line count when generating context
diffs or unified diffs, default is 3
-w WIDTH, --wrap=WIDTH
specify column number where lines are broken and
wrapped for sdiff, default is no line wrapping
-y, --yes do not prompt for overwriting
* coderev.sh usage
(optional) cp coderevrc.sample ~/.coderevrc, customize your own
cd your-workspace
coderev.sh [-r revsion] [-w width] [file|subdir ...]
`revision' is a revision number, or symbol (PREV, BASE, HEAD) in svn,
see svn books for details. Default revision is revision of your working
copy
`width' is a number to make code review pages wrap in specific column
Default `subdir' is working dir.
Example 1:
coderev.sh -w80 bin lib
Generate coderev based on your working copy, web pages wrap in column 80.
If you are working on the most up-to-date version, this is suggested way
(faster).
Example 2 (for SVN):
coderev.sh -r HEAD bin lib
Generate coderev based on HEAD revision (up-to-date version in repository),
this will retrive diffs from SVN server so it's slower, but most safely.
== Contact ==
Comments appreciated, please send to <project owner> at gmail.com.