QuickRevBoard

QuickRev
The QuickRevBoard generates task lists and information about the review state of all files by comparing the file versions with the project files. The QuickRevBoard uses the information stored in the history database, which is stored by default in .quickRev/history in the user's home directory during normal QuickRev usage. If the history-DB is set up already nothing else has to be done. But sometimes it is necessary to create a completely new history-DB for creation of the QuickRevBoard. For doing this use QuickRev --history to create (or update) a history-DB. java -jar QuickRev --history --help will show you all possible options. For creation of the history-DB and the QuickRevBoard --db-dir might be used the specify a different location of the history-DB.

Overview

Click the screenshot to view the QuickRevBoard in action.

QuickRevBoard - Review History (directory)

Syntax

USAGE:
  java -jar QuickRev.jar --board [OPTIONS]

OPTIONS:
  [-h|--help]
        Prints this help.

  [--db-dir <db-dir>]
        Defines the directory where the history-DB is stored.
        If this option is omitted the database will be searched in '~/.quickRev/history'.

  [--vcs=<svn|git|cc>]
        Defines the used version control system.
        Either 'svn' for SVN, 'git' for GIT and 'cc' for ClearCase can be used.
        If this parameter is not given 'svn' is used as default.

  [--vcs-command <command>]
        Per default the commands 'svn' for SVN, 'git' for GIT and 'cleartool' for ClearCase are used.
        A different command can be specified here which is helpful if the default command cannot be found via the default
        search path. Furthermore it is possible to add additional options (e.g. username / password / etc.) to the command.
        Note: if additional arguments are given (or the path contains spaces) the command has to be quoted.

  [--start-dir <start-dir...>]
        Defines the start directories to search for files to be shown in the review history.

  [--exclude <path-pattern...>]
        Excludes paths (directories and files) which contain one of the regular expressions from search.
        Only the part behind the given start directory will be checked for a match.
        (increases search performance)

  [--exclude-file <paths-file>]
        Excludes paths which contain one of the regular expressions specified in the given file from search.
        Every regular expression has to be defined in a new line.

  [--include <path-pattern...>]
        Includes paths (directories and files) which contain one of the regular expressions in the final result set.
        Only the part behind the given start directory will be checked for a match.
        '--exclude' takes preference over '--include', so all paths which are excluded cannot be included via this option.
        If this option is given only paths will be included in the final result set which match one of the given include pattern.
        Includes are checked when the whole path to a file is available, while excludes are checked already during
        traversal through the directory structure. So using '--exclude' might be faster if whole directories can
        be excluded.

  [--include-file <paths-file>]
        Includes paths which contain one of the regular expressions specified in the given file in the final result set.
        Every regular expression has to be defined in a new line.

  -o|--out-dir <output-directory>
        Specifies the output directory where the output files have to be stored.

  [--replace-path <replace-from, replace-to>]
        Replacement of the paths to the project files or even the files to be reviewed.
        This option can be used to replace local paths with remote ones in the generated output files.
        If the option is given more than once the replacement which matches first will be used.

  [--replace-vcs-path <local-path, original-path>]
        Replaces the path of the read files under version control with a different one to fit to the path used in
        the project files. This can be useful for subversion mirrors or for ClearCase if the directories are mounted
        to different drives or locations.

        When creating review history for large subversion repositories the process can be increased dramatically by
        creating a local mirror of the svn repository and creating the QuickRevBoard based on the local mirror.
        One possibility is to use 'svnsync' here. Since the path of the files read from the mirrored repository does
        not fit to the original one the reviews cannot be assigned to the files. So this options allows to specify the
        path of the local mirror and replace it with the original path.
        Note: This options might work for other mirrors (like 'svk') as well, but is tested only for 'svnsync'.
              So try out for other mirrors - and please let me know whether it worked.

  [--file-version-separator <separator>]
        To access different versions of a file directly a link to every version will be created in the following form:
        for Subversion: path-to-file?p=version (e.g. http://path/example.java?p=123)
        for ClearCase : path-to-file@@version (e.g. http://path/example.java@@/main/4)
        Make use of this option to define a different separator between 'path-to-file' and 'version'.

  [--json-only]
        Specify this option to generate the 'json' files only and omit all stylesheet, html, image,
        and other visualisation related files. So only the data structure will be generated and you can use your own
        visualisation, evaluation or whatever tools.

  [--no-tasks]
        Specify this options to suppress generation of the task list.

  [--no-history]
        Specify this options to suppress generation of the files review history.

  [--title <title>]
        Adds a title to the generated QuickRevBoard.

  [--baseline <number/label/tag>]
        Defines a revision number / label / tag which will be used as baseline.
        I.e. all file versions which are older or equal to the given number will be regarded as 'reviewed'.
        This option is available for the following version control systems: SVN / ClearCase.

  [--baseline-time <yyyy-MM-dd/hh:mm:ss>]
        Defines a time point which will be used as baseline.
        I.e. all file versions which are older or equal to the given time point will be regarded as 'reviewed'.
        This option is available for all version control systems.

  [--exact-baseline]
        Add this parameter to apply the baseline settings to a file only, if the latest known version
        is covered by the baseline. In case there are already newer versions ignore the baseline for this file.

  [--threads=<value>]
        Changes the number of threads to determine the file history.
        To increase the performance try different values.
        If this option is not given the number of processors is used as default.

  [-c|--config <config-file...>]
        Make use of this option to load the same configuration files as for normal QuickRev usage.

  [--plugin <plugin-path...>]
        Make use of this option to load the same plugin files as for normal QuickRev usage.

  [--git-log-follow]
        Uses 'git log --follow' for determination of file history (this is the default).

  [--git-log-follow-m]
        Uses 'git log --follow -m' for determination of file history.

  [--git-log-m]
        Uses 'git log -m' for determination of file history.

  [--auto-gen-reviews]
        Depending on the used git log options (default '--follow') the history of a file after renaming the file is shown or not.
        This can lead to situations, where a review made for a file before renaming the file cannot be assigned to the file anymore.
        If, for showing the review history (or generation of the QuickRevBoard), a review was found, where the latest known commit
        of a file is part of the file history, but the base version is not part of the file history anymore, QuickRev searches for
        other reviews where the SHA1 hash of the latest review version is the same as the former base version, this is done until
        a 'full' review was found - so the initial review version can be marked as 'completely' reviewed.

  [--debug[:<WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL>]]
        This option is useful in case of errors to get additional information.
        Assign a log-level in the form "--debug:ALL" to print logging information of the
        given level to standard error. The following log-levels are available:
        SEVERE (highest value), WARNING, INFO, CONFIG, FINE, FINER, FINEST (lowest value), ALL.
        (See java.util.logging.Level for more information)

Example Usage

Example 1
QuickRev --board --out-dir /tmp/my-qr_board/ --start-dir /home/dev

Creates the QuickRevBoard for the files found recursively starting at /home/dev and writes the results to /tmp/my-qr_board/. This command uses the history-DB stored in the QuickRev's home directory during normal QuickRev usage. It's the most simple usage of the QuickRevBoard.

Example 2
(1) QuickRev --history --db-dir /tmp/my-qr_board/ --find /home/dev --exclude /test/ /doc/ .svn/
(2) QuickRev --board --db-dir /tmp/my-qr_board/ --out-dir /tmp/my-qr_board/ --vcs=svn --start-dir /home/dev --exclude /test/ /doc/ .svn/ /review/ --include .java$ .xml$ --replace-path /home/dev http://my/remote/path

Here QuickRev is started twice, once to create the history-DB and afterwards to create the QuickRevBoard.

(1) creates the history-DB in /tmp/my-qr_board directory and searches recursively for project files starting in /home/dev. test, doc and .svn directories will be ignored during the search. The command can be executed even if the history-DB exists already, in this case it will be updated (which is faster than the initial creation). See QuickRev --history --help for all options to create the history-DB.

(2) creates the QuickRevBoard with the history-DB stored in /tmp/my-qr_board directory. The result will be written to the same directory like the history-DB. Subversion is used as version control system (which is the default). The files to be reviewed will be searched recursively starting in /home/dev. test, doc, .svn and review directories will be ignored and only files which end with .java or .xml will be taken into account. The local path to the project files will be replaced from /home/dev to http://my/remote/path to be accessed on a remote location afterwards.

Get QuickRev at SourceForge.net. Fast, secure and Free Open Source software downloads