inuits/coderev

Name: coderev

Owner: Inuits

Description: A toolkit generates side-by-side html pages for code review

Created: 2015-07-25 09:36:03.0

Updated: 2015-07-25 09:36:04.0

Pushed: 2015-07-25 13:39:41.0

Homepage: null

Size: 190

Language: HTML

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Hey, maybe you are just looking for a side-by-side diff viewer? Try cdiff instead.

Coderev

A toolkit generates side-by-side html pages for code review

About

Coderev is a toolkit generates static side-by-side html pages for code review. Typical use case is to generate diff pages for local modification in svn/cvs workspace and send page link to teammates for code review.

See ymattw.github.io/coderev/demo/ for a demo.

This toolkit contains two scripts that can be used separately.

This project was originally hosted at google code and recent moved to github.

Usage of coderev.sh

Just type ./coderev.sh -h to see the usage.

Usage:
    coderev.sh [-r revision] [-w width] [-o outdir] [-y] [-d name] \
            [-F comment-file | -m 'comment...'] [file...]

    coderev.sh [-r revision] [-w width] [-o outdir] [-y] [-d name] \
            [-F comment-file | -m 'comment...'] [-p num] < patch-file

    All options are optional.

    -r revision     - Specify a revision number, or symbol (PREV, BASE, HEAD)
                    in svn, see svn books for details.  Default revision is
                    revision of your working copy

    -w width        - Let code review pages wrap in specific column

    -o outdir       - The output dir to save code review pages

    -y              - Force overwrite if outdir alredy exists

    -d name         - Use this name instead of a dynamically timestamp string
                    as coderev directory basename

    -F comment-file - A file to read comments from

    -m 'comment...' - To set inline comments, note '-m' precedes '-F', if
                    neither `-F' nor `-m' is specified, $EDITOR (default
                    is vi) will be invoked to write comments

    file...         - File/dir list you want to diff, default is `.'

    patch-file      - A patch file (usually generated by `diff(1)' or `svn
                    diff') to use to generate coderev

    -p num          - When use a patch file, this option is passed to utility
                    `patch(1)' to strip the smallest prefix containing num
                    leading slashes from each file name found in the patch

Example 1:

    You are working on the most up-to-date revision and made some local
    modification, now you want to invite others to review, just run

        cd workspace
        coderev.sh -w80

    This generates coderev pages (wrap in column 80) in a temp directory.  Then
    copy the coderev dir to somewhere on a web host and send out the link for
    review.  Read coderevrc.sample for how to make this automated.

Example 2:

    You are making local modification when someone else committed some changes
    on foo.c and bar directory, you want to see what's different between your
    copy and the up-to-date revision in repository, just run

        cd workspace
        coderev.sh -r HEAD -o ~/public_html/coderev foo.c bar/

    This generate coderev based on diffs between HEAD revision (up-to-date
    version in repository) and locally modified revision, this will retrieve
    diffs from SVN server, output pages saved under your web home, i.e., if
    you correctly configured a web server on your work station you can visit
    http://server/~you/coderev to see the coderev.  (Replace HEAD with a
    revision number this example also works for CVS).

Example 3:

    Someone invite you to review his code change, unfortunately he sent you raw
    diff generated by `cvs diff' named `foo.patch', you can run

        cd workspace
        cvs up
        coderev.sh -m 'applying patch foo' -o ~/public_html/foo < foo.patch

    Again, you can visit http://server/~you/foo to see his change.  Note you
    may need to use option `-p num' depends on how he generated the patch.

Example 4:

    You want to see what's different between previous revision and your
    current working copy (modified or not) for foo.c and dir bar/, just run

        cd workspace
        svn diff -r PREV foo.c bar/ | coderev.sh -w80 -F comments

    This read comments from file `comments' and generate coderev in a temp
    directory.  (Replace PREV with a revision number this example also works
    for CVS).
Usage of codediff.py

Just type ./codediff.py -h to see the usage.

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
-c, --context         generate context diff (default is full diff), only
                        take effect when diffing two files
-F FILE, --commentfile=FILE
                        specify a file to read comments
-f FILE, --filelist=FILE
                        specify a file list to read from, filelist can be
                        generated by find -type f, specify - to read from
                        stdin
-m COMMENTS, --comments=COMMENTS
                        specify inline comments (precedes -F)
-n NUM, --lines=NUM   specify context line count when generating context
                        diff or unified diff, default is 3
-o OUTPUT, --output=OUTPUT
                        specify output file or directory name
-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
-P NUM, --pager=NUM     specify maximum number of files listed in index
                        page. If there's more, additionnal indexnn.html will be
                        generated.
-t TITLE, --title=TITLE
                        specify title of output index page
-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

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.