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