= 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.