QuickRev - Help

Abstract

QuickRev is a code review tool which supports formal code review processes for Subversion, GIT and ClearCase controlled files. It implements a Complete Review Cycle, allows reviews between different versions and shows the differences between the files. It can be configured easily to be adapted to the established review process. Produces readable xml-output to be archived for later inspection respectively verification and to be formatted via stylesheets or parsed for further evaluation in any intended way.

Table of Contents

1. Quick Start
2. Requirements
3. The Review Process
3.1. Create A New Project
3.2. Perform Review
3.3. Correction Phase
4. Load An Existing Project
5. Export A Project (qrx-files)
6. Change Initiator
7. Change User Name
8. Change Review Phase and Cycle
9. ALL Mode (4 Eyes Review)
10. Send Email Notification
11. Checklists
12. Adjust Path Of Moved / Renamed Files
13. Command Line Options
14. Review History
14.1. Command Line Options
15. Menu
15.1. Project
15.1.1. Open ...
15.1.2. Join ...
15.1.3. Find Open Projects ...
15.1.4. Recent Projects
15.1.5. Save
15.1.6. Save As ...
15.1.7. Reload
15.1.8. Close
15.1.9. Export ...
15.1.10. Add File ...
15.1.11. Add Files From Changeset ...
15.1.12. Reload File Versions
15.1.13. Create New Review Cycle (<name of new cycle>) ...
15.1.14. Verify Input ...
15.1.15. Review History
15.1.16. Preferences ...
15.1.17. Exit
15.2. Files
15.2.1. Load Files
15.2.2. Show
15.2.3. Hide
15.2.4. Filter ...
15.2.5. Sort ...
15.3. Comments
15.3.1. Show Comments ...
15.3.2. Show Comments Overview ...
15.3.3. Add General Comment ...
15.3.4. Show
15.3.5. Hide
15.3.6. Filter ...
15.4. View
15.5. Extras
15.5.1. Task List ...
15.5.2. Send Email Notification ...
15.5.3. Checklists
15.5.4. Plugins ...
15.5.5. Syntax Highlighting
15.6. Tools
15.6.1. Show Hidden Tools
15.6.2. Configure Tools ...
15.7. Help
15.7.1. Help ...
15.7.2. Review State ...
15.7.3. What's New (Release Notes) ...
15.7.4. About QuickRev ...
16. Tool Bar
17. Plug-Ins
18. Configuration
18.1. Element: QuickRev
18.2. Element: QuickRev / Preferences
18.3. Element: QuickRev / Preferences / EmailNotification
18.4. Element: QuickRev / Preferences / Tools
18.5. Element: QuickRev / Preferences / FindProjects / Excludes
18.6. Element: QuickRev / Preferences / SortFiles
18.7. Element: QuickRev / Users
18.8. Element: QuickRev / VCS | SVN | GIT | ClearCase
18.9. Element: QuickRev / Configuration
18.10. Element: QuickRev / Configuration / Output
18.11. Element: QuickRev / Configuration / Date
18.12. Element: QuickRev / Configuration / Severities | States
18.13. Element: QuickRev / Configuration / Information | Conclusion | FollowUpConclusion
18.14. Element: QuickRev / Configuration / EmailClientSettings
19. QuickRevBoard
19.1. Command Line Options
19.2. Example Usage
20. XML Output Format
20.1. Element: QuickRev / Info
20.2. Element: QuickRev / Files
20.3. Element: QuickRev / Conclusion
20.4. Element: QuickRev / Comments
20.5. Element: QuickRev / FollowUp
20.6. Element: QuickRev / DataLinks
20.7. Element: QuickRev / Metrics

Chapter 1. Quick Start

If you are using QuickRev for the first time and want to 'play around' with the provided functions you may wonder why different menus are not available or disabled. Whether a menu is available and enabled depends on the current review phase and role.

To circumvent these restrictions and get a first impression of QuickRev select menu ViewALL (4 Eyes Review) . This changes QuickRev to a mode, where all input fields can be changed freely by one person.

By default QuickRev uses svn as subversion command and cleartool for ClearCase. If these commands do not fit to your environment you have to tell QuickRev, where your svn respectively ClearCase client-program is located. Use menu ProjectPreferencesVersion Control System to set the path.

[Caution]Caution
The configured svn-client has to be a 'real' command line client (one that you can use on your console). TortoiseSVN's TortoiseProc.exe is not a command line client, it is a graphically interface for subversion which cannot be used with QuickRev.


QuickRev does not request a username or password to access the SVN repository. So free access to subversion should be granted. I.e. when using subversion from command line subversion requests your username and password and will sore it in your subversion configuration file.
Alternatively you could add your username and password via the options --username <username> --password <password> to your subversion command arguments in the preferences dialog. By doing this QuickRev stores the command and the options in a readable form in the .quickRev/config/main file in your home directory. So you have to take care by yourself to protect your password.

Chapter Change Review Phase and Cycle gives an overview about which functions are available in which phase and role and how to change the phase.
To change the role take a look at chapters Change User Name and Change Initiator.
See Version Control Systems for further information about how to set the version control system preferences.

Chapter 2. Requirements

QuickRev requires Java version 1.8 or higher.

The Subversion support is tested with SVN version 1.5.x, but some users do work with older clients.

[Caution]Caution
The configured svn-client has to be a 'real' command line client (one that you can use on your console). TortoiseSVN's TortoiseProc.exe is not a command line client, it is a graphically interface for subversion which cannot be used with QuickRev.

The GIT support is tested with GIT version 1.7.11, but maybe an older one will do it too (please let me know).

The ClearCase support is tested with a ClearCase client version 7.0.x, but maybe an older one will do it too (please let me know).

Chapter 3. The Review Process

QuickRev implements a Complete Review Cycle.
This means the review continues as long as review comments will be made. The following diagram demonstrates this review cycle.

Figure 3.1.  QuickRev Review Cycle

QuickRev Review Cycle


3.1. Create A New Project

3.2. Perform Review

3.3. Correction Phase

Chapter 4. Load An Existing Project

To load an project use menu ProjectOpen ... or start QuickRev by loading a project via command line. This includes loading exported projects as well.

If review comments are made by different reviewers, which are not contained in the same project file the project files can be joined via menu ProjectJoin .... In this case the comments will be combined and can be saved completely in one project file. Note: this makes only sense, if the project files depend to the same review project, otherwise the files, project information etc. would differ. To join different projects files (which depend to the same review) from command line just pass them as additional options.

Chapter 5. Export A Project (qrx-files)

Chapter 6. Change Initiator

The initiator can be changed on the Information tab. She/he can be replaced in each revie cycle.
Users can be predefined via configuration files or the Preferences dialog to select them easily during changing of the initiator.

Chapter 7. Change User Name

The user name can be changed via the Preferences dialog.

Chapter 8. Change Review Phase and Cycle

Normally QuickRev selects the relevant review cycle and phase automatically, so you do not have the change the review phase by hand. But there are certain situations where the change of review cycle or phase is necessary.
Depending on the selected review phase different input fields are enabled or disabled. E.g. if you are in the phase Review you cannot change the files which depend to the review, or if you are in phase Correction you cannot change the part of the comments written by the reviewers.
The selected review phase and cycle has no influence on the project file which will be saved. It is used to avoid input errors.

Figure 8.1. Change Review Phase and Cycle

Change Review Phase and Cycle


  1. Review Phase
    Depending on the selected review phase different components are visible within QuickRev and fields can be changed or not.
    The following table shows an excerpt about what is possible in a review phase and what not.

    Creation Review Correction Finished
    Add / Remove File References yes no no no
    Change File Versions yes no no no
    Add Comments no yes, if you are a reviewer no no
    Modify Comments no yes, (Severity and Comment) yes, (State and Solution) no
    Delete Comments no yes no no

  2. ALL (4 Eyes Review)
    In ALL mode all input fields are enabled to document fast reviews by just one person. See ALL Mode (4 Eyes Review) for more information.

  3. Review Cycle
    By changing the review cycle you can see the content and versions of the files relevant for this review cycle and the comments made against these versions.
    The list of the available review cycles will be extended with every new review cycle.
    Normally the relevant review cycle is the last review cycle, but if you want to see the changes made in a previous review cycle you can step back by selecting another review cycle. In the comment dialog you can see the comments of the previous and the current review cycle only. If you want to see review comments from former review cycles you can go back. The same for the conclusion tabs, only the conclusions of the current review cycle are visible, to see the older ones you have to go back again. Normally nobody should make changes on former review comments, but e.g. to correct simple spelling errors in the comments itself it might be necessary. Since comments can be changed only in the review cycle they have been made you have to select the review cycle of the comment to change it.

  4. Phase (Status Bar)
    The Phase shown on the left side of the status bar shows the overall review state of the current review. This phase cannot be changed via the View menu. It depends on the values given for the comments, information and conclusion fields. This is the phase which will be stored in the project file. To view some more information about the review state and to know what to do next click on the Phase in the status bar or use the HelpReview State ... menu item, which will bring up the following dialog.

    Figure 8.2. Review State Dialog

    Review State Dialog


  5. View (Status Bar)
    The review phase and cycle selected via the View menu is shown here.

Chapter 9. ALL Mode (4 Eyes Review)

To document fast reviews, where the review is performed by just viewing the code changes on the screen and giving comments verbally (that's what's called 4-Eyes-Review here), it is sometimes necessary to fill out the review fields by one person completely. Normally it depends on the current phase and role whether a field is enabled or disabled. To change this behavior QuickRev can be brought to ALL mode (4-eyes review) via menu ViewALL (4 Eyes Review).

If the ALL mode is selected this is shown in the status bar.
The following picture shows the comments dialog in ALL mode, where all text fields are enabled.

Figure 9.1. Comments Dialog in ALL Mode

Comments Dialog in ALL Mode


Chapter 10. Send Email Notification

Email notifications about the state of the review can be sent directly from QuickRev.

To use this feature the email client settings have to be configured first, this can be done for all users via config files or locally via the Preferences dialog. Furthermore templates can be defined for the email text and subject, so no additional text has to be inserted for the email itself.

[See] Defining email templates via the Preferences dialog.

[See] Defining email templates for all users via config files.

To send the email notifications use the menu ExtrasSend Email Notification ... menu.

[Note]Note
Email notifications can be sent via the tools menu as well.

After selecting the Send Email Notification ... menu the following dialog appears

Figure 10.1. Send Email Notification Dialog

Send Email Notification Dialog


  1. From / To
    The email address of the sender and receiver will be selected automatically depending on the role of the current user. If the current user is the initiator, the mail will be sent to all reviewers, otherwise, if the current user is the reviewer, the mail will be sent to the initiator only. The addresses of the users can be defined generally via configuration files or locally via the Preferences dialog. The list of reviewers are comma separated.

  2. Subject and Email Content
    The subject and content can be defined via configuration files or preferences dialog, where different place-holders for e.g. user-name, comment count, project file path, review cycle, etc. can be used, so that no additional text has to be inserted when actually sending an email notification.

  3. Send Copy To Sender
    Select Send Copy To Sender to send a copy of the email to the sender of the email.

  4. Send As HTML
    If selecting Send As HTML the email will be transmitted as html content. So html-tags can be used within the email.

  5. Attach Project File
    Select Attach Project File to send the project file as attachment. If the project has not been saved already the file will be created on demand.

  6. Attach Export File
    Select Attach Export File to send the project saved as export file as attachment. If the project has not been saved already the export file will be created on demand. The export file can be used to perform a review without access to the version control system.

  7. Attachments
    To send additional attachments change to the Attachments tab and add the files to be attached to the email.

[See] Defining email templates and options via the Preferences dialog.

[See] Defining email templates and options for all users via config files.

Chapter 11. Checklists

Most projects have their own coding standards which define naming conventions, restrict language usage and define rules and recommendations for the use of the language. These rules have to be checked during the review and to make life easier QuickRev supports the direct usage of checklists.

Chapter 12. Adjust Path Of Moved / Renamed Files

If a file was renamed or moved during the review, QuickRev acts as follows depending on the used version control system.

If you are working with subversion QuickRev detects, that the path of the affected review file cannot be found in the HEAD revision of your svn-repository, and therefore takes the newest known revision number as peg-revision to retrieve the log-information from subversion. So the logging is available up to this newest known version only.

If you are working with ClearCase no history information can be fetched from ClearCase at all, so QuickRev will show all known versions in the version selection fields. Since QuickRev does not know where the file is located now it cannot open the file and so no file content can be shown in the diff-windows and QuickRev will show you just the comments assigned to this file.

A Moved button is assigned to every file on the File References tab where you can select the new file path.

Chapter 13. Command Line Options

USAGE:
  java -jar QuickRev.jar [OPTIONS]

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

  [-v|--version]
        Shows the current version.

  [--history]
        Creates / updates the QuickRev-History.
        Use 'QuickRev.jar --history --help' to show all options.

  [--board]
        Creates the QuickRevBoard which shows open tasks and the review history of all files.
        Use 'QuickRev.jar --board --help' to show all options.

  [<file...>]
        Loads the given project-, review- or export- files.
        QuickRev determines automatically which type of file was given.
        To specify the file types explicitly use the options below.

  [-c|--config <config-file...>]
        Start with configuration files.
        The config-files can be given as local or remote (http://) files.

  [-d|--diff]
        Start in diff mode. The diff mode is just to perform file diffs without saving/loading of projects.
        In difference to normal mode, files which are not under version control as well as local working
        copies can be loaded into QuickRev and compared, which is not possible in review mode.

  [-f|--file <review-file...>]
        Loads the given review files.
        If given as first arguments the option can be omitted.

  [-p|--project <project-file...>]
        Loads the given project- or export- files.
        If given as first arguments the option can be omitted.

  [-find|--find-project <path>]
        Searches for project files which are not finished for the current user starting from the given path.
        If projects are found a list will be shown to select the project which has to be loaded.

  [-cs|--changeset [<rev|from-rev:to-rev|HEAD>]]
        Opens the 'Add Files From Changesets' dialog and loads the given changesets (for SVN and GIT only).
        Either use a single revision number to load this changeset (e.g. -cs 123) or specify a range of changesets
        in the format '<from-revision>:<to-revision>' (e.g. -cs 123:126), including the given revision numbers.
        Use '<from-revision>:HEAD' to load all changesets from the given revision number up to the HEAD revision.
        To load the latest changesets either use 'HEAD' or no revision number at all.
        The repository url will be determined from the current working directory.
        Loading a range of revision numbers ('<from-revision>:<to-revision>') is not available for GIT.
        Note: When loading projects or review files at the same time this option will be ignored.

  [-cl|--checklist <checklist-file...>]
        Loads the given checklist files.
        The checklist-files can be given as local or remote (http://) files.

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

  [--git-log=<options>]
        Uses 'git log' with the given options.
        Multiple space separated commands must either be quoted or can be concatenated with a '+' instead of the space.
        Example: --git-log="--full-history --simplify-merges" or --git-log=--full-history+--simplify-merges

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

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

  [--plugin <plugin-path...>]
        Specifies the plugins to be loaded.
        The given paths can be either plugin jar-files or directories.
        If a directory was given it will be searched for jar-files (non-recursive).
        The plugin-paths can be given as local or remote (http://) once.
        If plugins from remote are specified the plugins have to be listed explicitly (no directories).

  [--style=<style-name[;options]>]
        Defines which style to be used as look and feel.
        style-name: the name of the style to use followed by optional settings of style flags.
        To see all available look and feels make use of the --style-dump option.
        To use the built-in dark style use --style=dark (see EXPERIMENTAL below)
        Examples:
        --style=dark                                                 # use dark style
        --style=dark;text:#ff0000;QuickRev.base.color.green:#00fe00  # use dark style with some special color settings

        EXPERIMENTAL:
        The 'dark' style mode is in an experimental state so not all colors have been configured sufficiently.
        For full support of the 'dark' style you can define your own color schema via the style options.
        If there are fields which cannot be styled individually don't hesitate to contact me, furthermore,
        if you have a completely styled dark mode schema, you can sent it to me to integrate it into QuickRev if you like.

    [--style-dump[=<L&F-name>]]
        Prints all available look and feel names if used without L&F-name.
        Prints all available color settings of the given look and feel when a L&F-name is given

    [--server[:<port>]]
        Starts the HTTP server during startup with default port 8000
        listening at <a>http://localhost:8000/quickrev</a>.
        To change the port add a different port number like this "--server:3000".
        Open the link in a browser when server is running to get help about the REST API.

    [--debug[:<WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL>]]
        This option is useful in case of errors to get additional information.
        Specifying "--debug" only, will show an additional "Debug" menu which provides different debug options.
        Furthermore you can 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), WARNINGINFOCONFIGFINEFINERFINEST (lowest value), ALL.
        (See java.util.logging.Level for more information)

[Note]Note
During loading and comparing of large files it can be necessary to increase the size of the heap space. This can be done with the following arguments:
java -Xms<initial heap size> -Xmx<maximum heap size>
Example:
java -Xms64m -Xmx1024m -jar QuickRev.jar [OPTIONS]
[Note]Note
Review files loaded from any version control system will be read with the systems default encoding which may differ from the encoding used to store these files. Since QuickRev cannot know the encoding used for the files you have to specify this different encoding with the following arguments:
java -Dfile.encoding=<your encoding>
Example:
java -Dfile.encoding=utf-8 -jar QuickRev.jar [OPTIONS]

Chapter 14. Review History

QuickRev can show you the review history of each version of a file.
Furthermore it can set the base version of a review file automatically to the last reviewed version of this file to perform reviews on files without gaps in the review history. For usage of the Task List the history database is needed as well.
[Note]Note
The review history can be configured via the ProjectReview History menu.
For more information about the configuration of the review history
[See] Configure History ...
The following dialog shows the review history of a file.

Figure 14.1. Review History Dialog

Review History Dialog

  1. The review coverage of a file will be shown here. QuickRev distinguishes between four different states.

    • There are older versions which are not covered by any review. (Review gaps found.)
    • The latest versions are not covered by any review.
    • All versions are covered by reviews.
    • Not all versions have been loaded! - In this case QuickRev does not know the review state because the review history of the not loaded versions are not available. A Reload button will be shown and you can reload the versions.

  2. All available versions will be shown. More information about a file version can be accessed via tool tips (move mouse over the version). The dialog shows the versions only, which have been loaded. If QuickRev is configured not to load all file versions by default you can reload them via the Reload button on the File References tab for a single file or via the menu ProjectReload File Versions for all files. The number of versions to be loaded by default can be configured via the Preferences dialog. For more information about the used colors open the Legend at the bottom of the dialog.

  3. This bar marks the versions which are covered by the current review.

  4. Every bar represents a different review, which is assigned to the versions covered by the review. More information about the review can be accessed via tool tips (move mouse over bar). Different colors represent different states of the reviews, and the versions used in the review (Base, Review, FollowUp, Verification) will be shown with a corresponding letter. For more information about this open the Legend via the link at the bottom of the dialog.

  5. This link opens the legend which explains the colors and signs used in this dialog.

Figure 14.2. Review History Selection

Review History Selection

  1. Use the History button to open the Review History dialog of the corresponding file.

14.1. Command Line Options

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

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

  --find <start-dir...>
        Searches recursively for review files starting in the given directories and adds them to the history-DB.

  --find-N <dir...>
        Searches for review files in the given directories and adds them to the history-DB.

  [--find-dir <dir-name, start-dir...>]
        Searches recursively for all directories with the given 'dir-name' starting at the given 'start-dir'
        and adds the found directories to the history-DB.
        Use --update to search for the review files in the added directories, both options can be given at the same time.

  --add <file..., dir...>
        Adds given review files and directories to the history-DB.
        Use --update to search for the review files in the added directories, both options can be given at the same time.

  --remove <file..., dir...>
        Removes given review files and directories from the history-DB.
        This command will be executed before 'add' / 'find' and 'update' commands if they are given together.

  [--update]
        Searches in all directories known in the history-DB for review files and adds or updates the found review files.
 
  [--exclude <dir-pattern...>]
        Excludes directory paths which contain the regular expressions from search (increases search performance).

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

  [--clear]
        Removes all entries from the review history.
        This command will be executed first if more arguments are given.

  [--cleanup]
        Removes all directories and review files from the history-DB which do not exist anymore.

  [--tasks [<user-name...>]]
        Prints a task list of all unfinished reviews for the given user(s).
        Use 'ALL' to print a task list for all users or use this options without arguments.

  [--dump]
        Shows the content of the history database.
        This option can be used for error detection reasons.
        Note: do not rely on the database table structure, because it may change with further releases.
        
  [-c|--config <config-file...>]
        Make use of this option to load the same configuration files as for normal QuickRev usage.
        
  [--debug[:<WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL>]]
        This option is useful in case of errors to get additional information.
        Specifying "--debug" only, will show an additional "Debug" menu which provides different debug options.
        Furthermore you can 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), WARNINGINFOCONFIGFINEFINERFINEST (lowest value), ALL.
        (See java.util.logging.Level for more information)

Chapter 15. Menu

15.1.  Project

15.1.1.  Open ...

(ProjectOpen ...)

Use this menu item to open a review project (xml or qrx files).
[See] Load An Existing Project

15.1.2.  Join ...

(ProjectJoin ...)

Use this menu item to join different project files (can be export files as well), which depend to the same review.
This is necessary e.g. if the project file has been sent to different reviews by email, so the results can be stored in one review sheet again.
[See] Load An Existing Project

15.1.3.  Find Open Projects ...

(ProjectFind Open Projects ...)

The menu item opens the Find Open Projects dialog which lets you search for unfinished reviews.
[Tip]Tip
The search for open projects can be started via command line options as well (e.g. java -jar QuickRev.jar -find .). For more information take a look at the Command Line Options.

Figure 15.1. Find Open Projects - dialog

Find Open Projects - dialog

  1. Define start path
    To define the path where the search for open projects has start make use of the Add, Edit and Delete buttons and select the path from Directory list.

  2. Start search
    To start the search click the Find Open Projects button. Make use of the Recursive check box, to define whether the search has to be performed recursively or not.

  3. Select found project
    The found projects will be shown in the table. There is one tab for the current user (named with the user name) and one tab for other users (named Others). The brackets behind the user name or Others define the number of found unfinished projects. To open a project either double click on the project or select it and press the OK button.

  4. Exclude Directories
    To speed up the search directories can be excluded from the search via regular expressions. Click the Exclude Directories ... button and add some regular expressions to it. Note, the given pattern matches if a part of a path contains the pattern, so e.g. 'test' excludes all paths containing the phrase 'test'.

  5. Refresh
    Refresh removes all projects from the table, which are finished in the meanwhile. This is useful, if the search for open projects was started, one was selected and finished and now the dialog is opened again to select the next unfinished review. So no new search is needed, the table items will just be cleaned up.

15.1.4.  Recent Projects

(ProjectRecent Projects)

Opens a list with the last opened projects to select them easily for opening.

15.1.5.  Save

(ProjectSave)

Saves the loaded project (even in case an export file was loaded).
This menu item is enabled only if changes have been made.

15.1.6.  Save As ...

(ProjectSave As ...)

Saves the project for the first time or under a different name.

15.1.7.  Reload

(ProjectReload)

Reloads to current project. This can be useful if the project file is under version control and another reviewer has added comments in between.
The reloading of the project can be triggered via the tools menu as well. So it can be combined with an update of the project file.
[See]See Example Tools for a reload example.

15.1.8.  Close

(ProjectClose)

Closes the currently opened project. If no project has been loaded or the project has never been saved all values will be reset (but QuickRev asks before).

15.1.9.  Export ...

(ProjectExport ...)

Use this menu item to export a project.
[See] Export A Project (qrx-files)

15.1.10.  Add File ...

(ProjectAdd File ...)

Use this menu item to add new files to the project.
Note: the selected review phase has to be Creation to add new files. For more information about this menu item and other possibilities to add new files refer to chapter Create A New Project.

15.1.11.  Add Files From Changeset ...

(ProjectAdd Files From Changeset ...)

15.1.12.  Reload File Versions

(ProjectReload File Versions)

Updates the version history of all files added to the project, this can be helpful if new versions have been created while QuickRev was running already.
A limit of file versions configured via the Preferences dialog will not be taken into account. To reload the version history of individual files only, use the Reload button assigned to each file at the File References tab.

15.1.13.  Create New Review Cycle (<name of new cycle>) ...

(ProjectCreate New Review Cycle (<name of new cycle>) ...)

Use this menu item to create a new review cycle.
[See] Create new review cycle

15.1.14.  Verify Input ...

(ProjectVerify Input ...)

The Verify Input menu opens the Input Verification dialog which shows you whether there are input fields where no value has been given yet or if everything is fine. The links will lead you to the components which have to be filled out. The Input Verification dialog can be used even with the user defined tools. See chapter Tools for more information about the tools.

Figure 15.8. Input Verification Dialog showing incomplete input

Input Verification Dialog showing incomplete input

Figure 15.9. Input Verification Dialog when everything is OK

Input Verification Dialog when everything is OK

15.1.15.  Review History

(ProjectReview History)

15.1.15.1.  Update History

(ProjectReview HistoryUpdate History)
If the review history has been configured via the menu ProjectReview HistoryConfigure History ... the history database can be updated here.
The menu starts the search for new project files in the configured directories and updates the history database accordingly. Make use of this menu if new projects have been added to your review directory while working with QuickRev or generally if you disabled the auto load functionality during startup of QuickRev.

[See] Configure History ... for configuration of this history database and startup behaviour.

15.1.15.2.  Configure History ...

(ProjectReview HistoryConfigure History ...)

QuickRev can be configured to automatically load the review history of the review files assigned to the project. For doing this QuickRev has to know where the project files are located. Furthermore it can be configured to automatically add new project files to the review history and to automatically select the last reviewed version of a file as base version for a new review.

Menu ProjectReview HistoryConfigure History ... opens the History Configuration dialog which lets you specify the behaviour of the history functionality and configure the history database so that QuickRev knows where the project files can be found.
The history database stores the information where the project files are located and information about open reviews to be shown in the Task List.

Figure 15.10. Review History Configuration (Main Options)

Review History Configuration (Main Options)

The Main Options tab lets you configure the following behaviour.
  1. Select, to automatically update projects in the history database for the configured review directories during startup of QuickRev. The update will be performed in background. (To start the update manually use menu ProjectReview HistoryUpdate History.)

  2. Select, to add new created and loaded projects and the corresponding path to the review history, to be taken into account for later reviews.

  3. Select, to automatically select the base version when adding new files to a review. The selected base version is the latest reviewed version found in the history database.

  4. The history functions can be disabled via this check box. This includes the Task List feature as well.

Figure 15.11. Review History Configuration (Database Configuration)

Review History Configuration (Database Configuration)

The History DB tab lets you configure the history database. Everything what can be configured here can be done via command line options as well.
[See]See Command Line Options for more information about the command line options.
  1. Select directories to be added to the history-DB. All project files found in the added directories will be added to the history-DB as well.

  2. Select a directory to start a recursive search for directories which contain project files to be added to the history-DB. All project files found in the added directories will be added to the history-DB as well. Make use of the Exclude Paths button to define directories which have to be excluded from search (performance boost).

  3. Select a directory to start a recursive search for directories with the defined name to be added to the history-DB. All project files found in the added directories will be added to the history-DB as well. Make use of the Exclude Paths button to define directories which have to be excluded from search (performance boost).

  4. Searches in all directories known in the history-DB for review files and adds or updates the found review files. This is the same as using the menu ProjectReview HistoryUpdate History.

  5. Select directories to be removed from the history-DB. All sub directories and project files contained in these directories will be removed from the history-DB as well. Alternatively you can use the Directory tab to show all directories contained in the history-DB and select the directories to be removed.

  6. Remove all project files and directories from the history-DB which cannot be found in the local file system.

  7. Remove all project files and directories from the history-DB.

  8. Define paths which have to be ignored during search of review directories.
    The same exclude paths will be used for menu ProjectFind Open Projects ....

    [Configuration]Configuration
    Default values for the paths to be excluded from search can be configured via configuration files.

Figure 15.12. Review History Configuration (Directory View)

Review History Configuration (Directory View)

Use the Directories tab to show or delete review directories stored in the history database.
  1. Use the Refresh button to show all directories stored in the history-DB. To delete directories and all sub-directories select the directory and use the Remove Selected Directories buttons.

    [Note]Note
    The directories stored in the history-DB are the directories which contain the project files. So after removing such a directory the parent directories might disappear as well, if they are not added explicitly as review directory.

  2. Use the directory view to navigate and select the directories to be removed.

15.1.16.  Preferences ...

(ProjectPreferences ...)

This menu item opens the Preferences dialog, which shows the preferences which can be changed by the user. These settings will be stored in a separate configuration file (.quickRev/config/main) in the users home directory. Most values can be predefined in configuration files.

The following topics are covered by the Preferences dialog.

15.1.16.1.  General

(ProjectPreferences ...General)

This tab allows changes of general preferences.

Figure 15.13. General Preferences

General Preferences

  1. Here you can change the user name and email address of the default user.

  2. Select Use Side-By-Side Diff and Ignore White Spaces to define the default behavior if a review file is selected for delta-review or changes in a follow-up review cycle have to be shown. These settings can be changed in the context menu of the diff window individually for each review file.

    To make tabs and spaces visible use option Show Tabs And White Spaces.

    To get rid of the comment tool tips select Disable Comment Tool Tips.

    To show the file annotations (blame) for every single code line (about the author who changed this line or the version of last change) by default select the Show Annotations About Author and/or Show Annotations About Version.

    To change the tab width change the value of Tab Width. Note: the change of the tab width will take affect after a restart of QuickRev only.

    Change the value of Font Size to change the font size of the diff windows.

    Change the value of Scroll Width to define a different number of lines to scroll with the scroll bar or mouse wheel.

    To show a print margin in the diff window select Show Print Margins and select the column where to show the print margin.

  3. To hide completed comments (all fields are filled out) automatically during the Correction phase select one of the following items from the Auto Hide Completed Comments list.

    1. never - disables this option

    2. always - hides the completed comment as soon as the comment is accepted

    3. if all references are marked as hidden - hides the completed comment if all references are marked as hidden

    4. if all references are marked as hidden or there is just one reference - hides the completed comment if all references are marked as hidden or there is just one reference to this comment

    This can be helpful when working in comments, so the comments which have been worked in will be hidden until no comment is visible anymore. The hiding of the comments will take place when the Accept button in the Comments dialog has been pressed.

    Select Auto Hide Comments Where All References Have Been Marked As Hidden, to automatically hide a comment from the Comments dialog if all references to this comment have been marked as hidden. This function is independent from any review phase.
    Note: this function is restricted to comments with completed information.

    Select Save Project On 'Accept' Or 'OK' Button to additionally save the project if the 'Accept' or 'OK' button in the comment dialog was pressed.

  4. For different features QuickRev will show you a hint about how and when to use it (something like a tip of the day). The messages can be disabled permanently via a corresponding checkbox in the message. To enable all these disabled message again use the Reset button.

[See] Changing some of the settings via configuration files

15.1.16.2.  Version Control Systems

(ProjectPreferences ...Version Control Systems)

This tab allows changing the settings of the used version control systems.

Figure 15.14. Version Control Systems Preferences

Version Control Systems Preferences

The path to the clients of the version control systems have to be given at this page.

Version control systems which are not needed can be disabled via the corresponding check boxes. I.e. if a new file is assigned to a review QuickRev tries the available version control systems to find out the version information of the file. Disabling a version control system may increase the performance.

If additional arguments have to be applied to the commands (e.g. username) they can be assigned in the Arguments field.

If Load Annotations is selected, the annotations of a file (blame) will be loaded by default, so they are available if the annotations shall be shown and do not have to be reloaded afterwards. Since the loading of annotations may need more time than loading the file content only, this can be disabled here.
Note: If Show Annotations About Autor / Version is selected on the General tab the annotations will be loaded nevertheless even if the corresponding fields are not selected here.

If the user name differs from the user name used for QuickRev the user name for the version control systems can be defined in the User field. This is useful to be able to select a file version by user name.

For GIT the path to the local GIT Repository has to be defined here.

The number of version loaded per file can be limited by specifying an individual File Version Count, this may lead to increased performance during loading of the file information.

Path Mapping
For ClearCase path mapping can be enabled, which is useful, if the ClearCase VOBs of different users are mapped to different locations (drives). So even if one user used Windows and another one used linux reviews between the different operating systems can be performed. After enabling the Path Mapping functionality the local path has to be defined in the Local Path field. In the External field(s) all the pathes used by other reviewers have to be defined. To add a new external path use the Add External Path button. When saving your project files you can decide, which path will be stored in the project file. Select the local path to always store your local path in the review sheet, select an external path to use this path or select Preserve Path, which stores the path which has been in the project file when opening it (during creation it will be the local path).
[See] Changing the settings via configuration files

15.1.16.3.  Default Comments

(ProjectPreferences ...Default Comments)

This tab allows creation of default comments to be applied easily.

Figure 15.15. Default Comments Preferences

Default Comments Preferences

Default comments can be assigned to the review files via the context menu.

To create a new default comment click the new button and insert a name. The name will be used in the context menu to select a default comment. Select a severity, insert the comment text and if checklists are loaded select a rule from the checklist (if any). The comment text can be formatted via the context menu.

15.1.16.4.  Default Solutions

(ProjectPreferences ...Default Solutions)

This tab allows creation of default solutions to be applied easily.

Figure 15.16. Default Solutions Preferences

Default Solutions Preferences

Default solutions can be assigned to every state, to be inserted in the solution text of a comment directly. To create a new default solution click the new button, insert a name and select a state the default solution is assigned to. The name will be used as postfix in the state selection combo box. The solution can be formatted via the context menu.

15.1.16.5.  Syntax Highlighting

(ProjectPreferences ...Syntax Highlighting)

This tab allows changing the file extensions, colors and font styles of syntax highlighting.

Figure 15.17. Syntax Highlighting Preferences

Syntax Highlighting Preferences

At the syntax highlighting page you can change the colors, font style and default file extensions for the available highlighters.

15.1.16.6.  UML

(ProjectPreferences ...UML)
This tab allows changing the settings for UML diagrams.
Note that a corresponding plug-in has to be loaded to view UML diagram.

Figure 15.18. UML Preferences

UML Preferences

15.1.16.7.  Email Client Settings

(ProjectPreferences ...Email Client Settings)

This tab allows changing the email client settings.

Figure 15.19. Email Client Preferences

Email Client Preferences

For using the email notification functionality the email client has to be configured first. QuickRev uses JavaMail to send the email by use of the SMTP-protocol. The preferences dialog shows a list of all configured properties, where the value of mail.host has to be replaced with your host-name and the mail.user with your email user name. If an authorization if required for sending emails set the value of mail.smtp.auth to true.

It is best to configure the general settings in a configuration file, which can be loaded when starting QuickRev or used as built-in configuration file. So not every user has to specify these settings.

Additional properties (such as using TLS) can be found of the following JavaMail documentation pages:
[See] http://java.sun.com/products/javamail/javadocs/javax/mail/package-summary.html#package_description
[See] http://java.sun.com/products/javamail/javadocs/com/sun/mail/smtp/package-summary.html#package_description


To get more information during configuring the properties you can set mail.debug to true, which results in more debug information written to standard out, so start QuickRev from console to see the debug information.
[See] Changing the settings via configuration files.

15.1.16.8.  Email Notification

(ProjectPreferences ...Email Notification)

At the Email Notification tab you can define different email templates (depending on the current role and/or review cycle) which will be used when sending an email. There are many placeholders which can be used to define the template such that no additional changes are needed when sending the email. Furthermore the email can be modified by an integrated JavaScript interpreter.

[Tip]Tip
Use the helper links in the dialog which will list all placeholders and the JavaScript usage. Furthermore make use of the context menu to insert placeholders and other variables.

[See] Defining default email templates via configuration files.

15.1.16.9.  Users

(ProjectPreferences ...Users)

This tab allows changing the users to be assigned to the review as reviewers and to send email notifications to.

Figure 15.20. Users Preferences

Users Preferences

Users and their email addresses can be defined either generally via configuration files or in this dialog. Users defined in configuration files can not be deleted within the dialog.
[See] Defining users via configuration files

15.1.16.10.  Config

(ProjectPreferences ...Config)

This tab shows some configuration values read from configuration files which cannot be changed and allows changing of others.

Figure 15.21. Config Preferences

Config Preferences

Stylesheet lets you define the path to the stylesheet referenced from the saved project files.

For files which cannot be displayed in QuickRev you can defined the file extensions of these files under Non Text File Extensions.
[See] Changing the settings via configuration files.

15.1.17.  Exit

(ProjectExit)

Quits QuickRev.

15.2.  Files

15.2.1.  Load Files

(FilesLoad Files)

Whenever the file references on the File References tab are changed the content of the corresponding files have to be reloaded. Whenever this is necessary the Load Files menu is colored red to indicate this. If QuickRev is started in diff mode (--diff) this menu can be used always to reload the compared files and the local working copies.
All file menu items and file tab titles will show their state in a different color. Use the tool tips (mouse over) to display the different meanings of the colors.
[See]See also View selected files

15.2.2.  Show

(FilesShow)

Via the sub menu items of the Show menu you can show files by individual topics. The number of files which will be shown is added in brackets behind every menu item, files which are shown already are not taken into account.
Make use of the tool tips (mouse over) to get a more detailed description of every sub-menu item.

15.2.3.  Hide

(FilesHide)

Hides file by different topics. This is the opposite menu item to the Show menu, so please refer to the Show menu item for more information.

15.2.4.  Filter ...

(FilesFilter ...)

Opens the Files Filter dialog, which lets you define different filters to show files. All files which do match a defined filter will be shown.
[See]See Filter Dialog for more information about how to define a filter. (The properties of the shown filter dialog differ from this filter, but the principle is the same.)

15.2.5.  Sort ...

(FilesSort ...)

Opens the Sort Files dialog, which lets you sort the files currently visible at the Files tab. The same dialog can be launched via the Define Sort Order ... menu from the Files tab context menu.
To sort the files at the File References tab the same dialog is used which has to be opened via the menu Sort FilesDefine Sort Order ....
[Configuration]Configuration
Default values to sort the files when added to the project can be configured via configuration files.

15.3.  Comments

15.3.1.  Show Comments ...

(CommentsShow Comments ...)

Opens the Comments dialog to show all comments. If no comments are made this menu item is disabled.
[Note]Note
The comments shown in this dialog are the comments from the current and previous review cycle. To view comments from other review cycles make use of the View menu to change the review cycle.
[See] Change Review Phase and Cycle

15.3.2.  Show Comments Overview ...

(CommentsShow Comments Overview ...)

Opens the Comments Overview dialog to show all comments regardless of the selected review phase and cycle. If no comments are made this menu item is disabled.

15.3.3.  Add General Comment ...

(CommentsAdd General Comment ...)

This menu item lets you add a general comment to the project. A general comment is a comment which is not assigned to an individual file. For a detailed description please refer to Add review comments to text files (source code review) chapter.

15.3.4.  Show

(CommentsShow)

Via the sub menu items of the Show menu you can show comments by individual topics (like author, severity, etc.). The number of comments which will be shown is added in brackets behind every menu item, comments which are shown already are not taken into account.

15.3.5.  Hide

(CommentsHide)

Hides comments by different topics. This is the opposite menu item to the Show menu, so please refer to the Show menu item for more information.

15.3.6.  Filter ...

(CommentsFilter ...)

Opens the Comments Filter dialog, which lets you define different filters to show comments. All comments which do match a defined filter will be shown.
[See]See Filter Dialog for more information about how to define a filter. (The properties of the shown filter dialog differ from this filter, but the principle is the same.)

15.4.  View

The View menu lets you change the review phase and cycle.
[See] Change Review Phase and Cycle

15.5.  Extras

15.5.1.  Task List ...

(ExtrasTask List ...)

This menu opens the Task List dialog which shows all open review projects of the current user. The dialog shows projects where the user is in the role of Initiator as well as in the role of the Reviewer. A filter allows to sort and filter the projects.
[Note]Note
To use the Task List functionality the history database has to be configured accordingly.
[See]See Configure History ... for more information about the configuration of the history database.

15.5.2.  Send Email Notification ...

(ExtrasSend Email Notification ...)

This menu opens the Send Email Notification dialog to send status notifications to the reviewers and initiator.
[See] Send Email Notification

15.5.3.  Checklists

(ExtrasChecklists)

This menu allows to load checklists and to select already loaded once.
[See] Checklists

15.5.4.  Plugins ...

(ExtrasPlugins ...)

This menu item opens the Plugins dialog which shows the loaded plug-ins and let you change the file extensions for the files associated with the plug-ins and other plug-in specific options.

15.5.5.  Syntax Highlighting

(ExtrasSyntax Highlighting)

Via this menu item you can select a different syntax highlighting or disable the syntax highlighting for the selected file. This menu item is enabled only if a file with contentTypetext is currently open. Normally the used syntax highlighting will be selected via the file extension of the selected file. To change the file extensions or the color and text style of a syntax highlighting use the Syntax Highlighting tab from the Preferences dialog.

15.6.  Tools

15.6.1.  Show Hidden Tools

(ToolsShow Hidden Tools)

Tools can be configured to be visible in the menu only for different Roles, Review Phases and Review Cycles. To view even the hidden tools use this menu.

15.6.2.  Configure Tools ...

(ToolsConfigure Tools ...)

This menu opens the Tool Configuration where different tools tools can be defined. A tool can be an external program or an internal command or a combination of both. All defined tools are accessible via the Tools menu afterwards.

15.7.  Help

15.7.1.  Help ...

(HelpHelp ...)

Shows this help.

15.7.2.  Review State ...

(HelpReview State ...)

Shows the Review State dialog which provides information about the current review phase and cycle. Furthermore information about what to do to switch to the next review phase will be provided.
[See]See Change Review Phase and Cycle for more information about the review state
.

15.7.3.  What's New (Release Notes) ...

(HelpWhat's New (Release Notes) ...)

Shows the release notes for all QuickRev versions.

15.7.4.  About QuickRev ...

(HelpAbout QuickRev ...)

Shows the About dialog.

Chapter 16. Tool Bar

QuickRevs provides a tool bar which can be be configured freely. Even user defined Tools and Checklists can be added to this tool bar.

Figure 16.1. Tool Bar

Tool Bar

  1. Open the tool bar configuration dialog
    To open the Tool Bar Configuration dialog press the ... button on the right side of the tool bar.

Figure 16.2. Tool Bar - configuration

Tool Bar - configuration

  1. Available tool bar items
    On the left side of the Tool Bar Configuration dialog all available items are listed. If Tools or Checklists are defined they are listed in this view as well.

  2. Selected tool bar items
    On the right side (Tool Bar Config tab) you can see and arrange the menu items which will be shown in the tool bar.

    [Note]Note
    The first four tool bar items are fixed and cannot be changed.

  3. Add / remove tool bar items
    To add tool bar items select one on the left side and use the add button (>). To remove a tool bar item select it on the right side and press the remove button (<). Use the remove all button (<<) to remove all selected tool bar items.

    [Note]Note
    Tools added to the tool bar, which are configured to be hidden in different review cycles, roles, phases, etc. will be hidden if this configuration dialog has been closed. These items will become visible if the options configured for these tools matches.

  4. Add separator / spacer and glue components
    Via the following buttons you can add additional components:
    | - adds a separator to the tool bar, depending on the used operating system this might be a vertically aligned dash or just some space between different menu items.
    - - adds a spacer to the tool bar, which puts some additional space between the tool bar items.
    <=> - the glue component moves all tool bar items before this component to the left of the tool bar and all others to the right. So you can align tool bar items at the right side. Only one glue component can be added.

    [Note]Note
    The separator (|) and spacer (-) component may look the same depending on the used operating system.

  5. Move tool bar items up / down
    Make use of the Up and Down buttons to move the selected menu items up or down.

  6. Reset all tool bar changes
    Restore Defaults resets all changes made for the tool bar configuration to its initial (default) state.

Figure 16.3. Tool Bar - configuration of menu items

Tool Bar - configuration of menu items

  1. Configure a tool bar item
    Make use of the options shown on the Menu Item Config tab to change a tool bar item. A tool bar item can be changed even if it is not shown in the tool bar. When a tool bar item is removed from the tool bar these changes are still saved.

  2. Restore a tool bar item
    Restore Defaults resets all changes made for this menu item to its default values.

Chapter 17. Plug-Ins

QuickRev provides a plug-in mechanism to plug-in own file viewers for different file types, so the content of the files can be shown in a user defined way.

A file viewer to display UML state machine diagrams is shipped with QuickRev already, which shows an UML diagram graphically and allows assignment of comments to the different UML elements.

To create an own plug-in, which displays an UML sate machine diagram, the read file format has to be transformed in the internal UML model.
The provided UML example plug-in (UMLExamplePlugin.jar) serves as an example for a plug-in implementation, which reads an own UML file format. To check out the example plug-in start QuickRev with the options --plugin UMLExamplePlugin.jar and load the provided uml example project file (UMLExampleProject.qrx), which contains an UML state machine diagram in the QuickRev-UML format. Take a look at the screenshot below for an example of this plug-in.

The UML elements delivered with QuickRev are for state machine diagrams up to now, but the elements can be extended for use of other UML elements as well.

To create different file viewers for other kind of files you have to implement the net.tomse.quickRev.files.FileViewerPlugin interface. A default implementation for common tasks is available via the abstract sub-class net.tomse.quickRev.files.AbstractFileViewerPlugin which may simplify the work.

For knowing the entry point of a plug-in the corresponding jar file has to contain a META-INF/services directory, which contains a text file with the name net.tomse.quickRev.files.FileViewerPlugin. The content of the file has to be the name of the implementing class, e.g. net.tomse.quickRev.app.plugins.umlExample.UMLFilePlugin. Multiple plug-ins can be specified in different lines. A # serves as comment.

To include the plug-in into the QuickRev.jar file put the .class files into the jar file and add a META-INF/services directory with the content as described above to define the entry point of the plug-in.

Figure 17.1. The UML file plug-in in action

The UML file plug-in in action

Chapter 18. Configuration

QuickRev can be configured in different ways via configuration files.
Most options can be configured via the Preferences dialog as well, but there are general configuration items which have to be defined via configuration files. These configuration items allow to add different input fields (like text areas, check boxes, etc.) to the Information and Conclusion panes, which can differ between the initial review cycle and following once. A stylesheet can be specified which will be written to the project files to transform them into readable html-pages when opening them in the browser. Furthermore the values for the Severity and State can be changed and the used date format can be configured as well.
Other configuration items like email client settings and general tool definitions can be done individually by every QuickRev user, but it may useful to provide a default configuration for the email client settings or define default tools to be available for all users without additional configuration.
Configuration files can be loaded either via command line options or packaged into the QuickRev.jar file to be available for all users without additional command options.

Loading configuration files via command line options is done as follows:
java -jar QuickRev.jar --config <config-file-name(s)> The config file can be given as local file or a remote one (http://).
[See] Command Line Options for syntax.

A built in configuration file has to be named config.xml and has to be copied into the QuickRev.jar:/resources/ directory.
[See] Add Built-In Config File to QuickRev.jar for a detailed description.

Even the default input fields can be changed.
[See]See Changing the Default Configuration.

18.1. Element: QuickRev

Name Use Values Changeable via the QuickRev menu Description
Element QuickRev required Preferences?, Users?, VCS?, ClearCase?, SVN?, Configuration? (any order) The root element of a QuickRev configuration file.
Attributes configName optional string no The name of the configuration file. The name will be shown on the left side of the status bar. "default" is a reserved name which should not be used.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Preferences>
    <EmailNotification/>
    <Tools/>
  </Preferences>
  
  <Users/>
  <VCS/>
  <ClearCase/>
  <SVN/>

  <Configuration>
    <Output/>
    <Date/>
    <Severities/>
    <States/>
    <Information/>
    <Conclusion/>
    <FollowUpConclusion/>
    <EmailClientSettings/>
  </Configuration>
</QuickRev>

18.2. Element: QuickRev / Preferences

Name Use Values Changeable via the QuickRev menu Description
Element Preferences optional EmailNotification?, Tools? (any order) Element for general preferences.
Attributes tabWidth optional 1..N yes Specifies the tab width.
printMargin optional 0..N yes Specifies the column, where the print margin has to be shown in the diff windows. Use 0 to show no print margins.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Preferences
    tabWidth="10"
    printMargin="81">

    <EmailNotification/>
    <Tools/>
  </Preferences>
</QuickRev>

18.3. Element: QuickRev / Preferences / EmailNotification

[Tip]Tip
To configure email templates easily use the Preferences dialog (ProjectPreferences ...Email Notification), configure your templates and copy the xml-structure out of the user-configuration file .quickRev/config/main from your home directory. The dialog lets you select placeholders for the template easily by using the context menu (right mouse click).
[See] Changing the email notification templates via the Preferences dialog.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Preferences>

    <EmailNotification>
      <InitiatorConfig defaultReceivers="" sendAsHTML="true" sendCopyToSender="true"/>
      <InitiatorSubject>  -- subject if initiator sends an email in initial review cycle --  </InitiatorSubject>
      <InitiatorContent>  -- content if initiator sends an email in initial review cycle  --  </InitiatorContent>

      <ReviewerConfig defaultReceivers="" sendAsHTML="true" sendCopyToSender="true"/>
      <ReviewerSubject>   -- subject if reviewer sends an email in initial review cycle --  </ReviewerSubject>
      <ReviewerContent>   -- content if reviewer sends an email in initial review cycle --  </ReviewerContent>

      <InitiatorFollowUpConfig defaultReceivers="" sendAsHTML="true" sendCopyToSender="true"/>
      <InitiatorFollowUpSubject>  -- subject if initiator sends an email in follow-up review cycle --  </InitiatorFollowUpSubject>
      <InitiatorFollowUpContent>  -- content if initiator sends an email in follow-up review cycle  --  </InitiatorFollowUpContent>

      <ReviewerFollowUpConfig defaultReceivers="" sendAsHTML="true" sendCopyToSender="true"/>
      <ReviewerFollowUpSubject>   -- subject if reviewer sends an email in follow-up review cycle --  </ReviewerFollowUpSubject>
      <ReviewerFollowUpContent>   -- content if reviewer sends an email in follow-up review cycle --  </ReviewerFollowUpContent>
    </EmailNotification>

  </Preferences>
</QuickRev>

18.4. Element: QuickRev / Preferences / Tools

[Tip]Tip
To configure tools easily use the Tool Configuration dialog (ToolsConifgure Tools ...), configure your tools and copy the xml-structure out of the user-configuration file .quickRev/config/main from your home directory.
[See] Configure Tools ... for more information about the Tool Configuration dialog.

Name Use Values Changeable via the QuickRev menu Description
Element Tools optional Tool+ yes Container for all Tool elements.
Element Tool optional (Command, (OR|AND))*, Command yes Element to specify the commands of a tool.
Attributes id required string no ID of the tool.
name required string yes The name of the tool (and the corresponding menu item).
autoExec optional true|false yes Specifies whether the tool will be executed automatically when selecting the corresponding menu item.
autoHide optional true|false yes Specifies whether the tool dialog will be closed automatically after successful execution of all commands.
autoExit optional true|false yes Specifies whether QuickRev will be exited automatically after successful execution of all commands.
cycle optional Initial|FollowUp yes Specifies in which review cycles the menu item will be visible. If the attribute is absent the tool will be shown in all review cycles.
phase optional Creation|Review|Correction|Finished yes Specifies in which review phase the menu item will be visible. If the attribute is absent the tool will be shown in all phases.
role optional Initiator|Reviewer yes Specifies in which role the menu item will be visible. If the attribute is absent the tool will be shown in all roles.
Element Command optional text yes The command to be executed. Placeholders for internal commands and variables can be used to be replaced for execution of the command. For a list of placeholders select the Show List Of Placeholders link in the Tool Configuration dialog (menu ToolsConfigure Tools ...).
Element AND optional EMPTY yes Connects two commands. The following command will be executed only, if the previous one was executed successfully.
Element OR optional EMPTY yes Connects two commands. The following command will be executed even if the execution of the previous command failed.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Preferences>

    <Tools>    
      <Tool 
        id="t1"
        name="init review (svn add, commit &amp; send email)"  
        autoExec="false" 
        autoHide="true"
        autoExit="false"
        cycle="Initial"
        phase="Creation"
        role="Initiator">
        <Command>%svn% add %filePath%</Command>
        <OR/>
        <Command>%svn% commit -m "init review" %filePath%</Command>
        <AND/>
        <Command>&lt;send-email&gt;</Command>
      </Tool>
    </Tools>
    
  </Preferences>
</QuickRev>

18.5. Element: QuickRev / Preferences / FindProjects / Excludes

Default directories to be excluded from search for project files via the Find Open Projects ... menu or during configuration of the history database can be configured with the following syntax.

Name Use Values Changeable via the QuickRev menu Description
Element FindProjects optional Excludes yes Parent element of the Excludes element.
Element Excludes optional Exclude+ yes Container for the Exclude elements.
Element Exclude optional text yes Contains one exclude path as regular expression.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Preferences>

    <FindProjects>
      <Excludes>
        <Exclude>\.svn\b</Exclude>
        <Exclude>\bbin\b</Exclude>
      </Excludes>
    </FindProjects>
    
  </Preferences>
</QuickRev>

18.6. Element: QuickRev / Preferences / SortFiles

[Tip]Tip
To configure the SortFiles preferences easily use the Sort Files dialog (Sort FilesDefine Sort Order ... at the File References tab) and copy the xml-structure out of the user-configuration file .quickRev/config/main from your home directory.

Name Use Values Changeable via the QuickRev menu Description
Element SortFiles optional EMPTY yes Container to configure the sort files preferences.
Attributes sortMethod optional path_ascending | path_descending | extension | path_and_extension | extension_and_path yes Defines the default sort order to be applied. Possible values are:
  • path_ascending - sort by path in ascending order
  • path_descending - sort by path in descending order
  • extension - sort by file extension
  • path_and_extension - sorts the files alphabetically by their path first and by file extension afterwards. Resulting in e.g. FileA.1 FileA.2 FileB.1 FileB.2.
  • extension_and_path - sorts the files alphabetically by their file extension first and by path afterwards. Resulting in e.g. FileA.1 FileB.1 FileA.2 FileB.2.
extensionOrder optional string yes A semicolon or comma separated list of file extensions in the order they have to be applied during sorting the files. If the extension of a file is not part of this list they will be sorted alphabetically behind the listed extensions.
Example: hpp, ipp, cpp
autoSort optional true|false yes Set to true to sort files automatically when adding them to the project.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Preferences>

    <SortFiles
      sortMethod="extension_and_path" 
      extensionOrder="hpp, ipp, cpp"
      autoSort="true"/>
    
  </Preferences>
</QuickRev>

18.7. Element: QuickRev / Users

Name Use Values Changeable via the QuickRev menu Description
Element Users optional User+ yes Defines a list of users to be selected easily during adding of new reviewers and changing of the initiator.
Element User optional EMPTY yes Defines a user.
Attributes name optional string yes The name of the user.
email optional string yes The email address of the user will be selected when sending emails via QuickRev to the reviewers or the initiator.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="users">

  <Users>
    <User name="user 1" email="user1@x.y"/>
    <User name="user 2" email="user2@x.y/>
  </Users>

</QuickRev>

18.8. Element: QuickRev / VCS | SVN | GIT | ClearCase

Name Use Values Changeable via the QuickRev menu Description
Element VCS optional EMPTY Definition of version control system specific preferences.
Attributes maxFileVersions optional 0..N yes Specifies the number of file versions, which will be loaded from the used version control system. 0 disables the limitation and loads all available versions always.
Element SVN optional EMPTY Definition of subversion specific preferences.
Attributes enabled optional true|false yes Defines whether subversion has to be used. E.g. when adding files QuickRev will check whether the file is under version control of one of the enabled version control systems.
command optional string yes Defines the path to the subversion command. If no command is defined svn will be used as default.
commandArgs optional string yes Additional arguments used with the subversion command can be specified here.
Element GIT optional EMPTY Definition of GIT specific preferences.
Attributes enabled optional true|false yes Defines whether GIT has to be used. E.g. when adding files QuickRev will check whether the file is under version control of one of the enabled version control systems.
command optional string yes Defines the path to the GIT command. If no command is defined git will be used as default.
commandArgs optional string yes Additional arguments used with the GIT command can be specified here.
Element ClearCase optional EMPTY Definition of ClearCase specific preferences.
Attributes enabled optional true|false yes Defines whether ClearCase has to be used. E.g. when adding files QuickRev will check whether the file is under version control of one of the enabled version control systems.
command optional string yes Defines the path to the ClearCase command. If no command is defined cleartool will be used as default.
commandArgs optional string yes Additional arguments used with the ClearCase command can be specified here.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">

  <VCS maxFileVersions="20"/>
  <SVN enabled="true" command="svn" commandArgs="xxx"/>
  <GIT enabled="true" command="git" commandArgs="xxx"/>
  <ClearCase enabled="true" command="cleartool" commandArgs="xxx"/>

</QuickRev>

18.9. Element: QuickRev / Configuration

Name Use Values Changeable via the QuickRev menu Description
Element Configuration optional Output?, Date?, Severities?, States?, Information?, Conclusion?, FollowUpConclusion?, EmailClientSettings? (any order) Contains general configuration items.
Attributes nonTextFileExtensions optional space separated list of strings (e.g. "pdf doc") yes A space separated list of non-text files, this means files which cannot be displayed in QuickRev or where it makes not sense to make line number based comments. Instead of line references text references can be used for these files. This can be changed individually for every file of a review project.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">

  <Configuration 
    nonTextFileExtensions="pdf doc">
    
    <Output/>
    <Date/>
    <Severities/>
    <States/>
    <Information/>
    <Conclusion/>
    <FollowUpConclusion/>
    <EmailClientSettings/>
  </Configuration>
</QuickRev>

18.10. Element: QuickRev / Configuration / Output

Name Use Values Changeable via the QuickRev menu Description
Element Output optional EMPTY Contains attributes which affects the written project files.
Attributes stylesheet optional string yes Defines the path to a stylesheet file which will be referenced from the project-xml files to be displayed in any intended way.

[Tip]Tip
An example stylesheet (stylesheet_example.xml) will be delivered with every QuickRev version.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Configuration>
  
    <Output
      stylesheet="http://.../stylesheet_example.xsl"/>

  </Configuration>
</QuickRev>

18.11. Element: QuickRev / Configuration / Date

Name Use Values Changeable via the QuickRev menu Description
Element Date optional EMPTY Definition of date format specific settings.
Attributes format optional string no Defines the default output format used for date/time. The default value is yyyy-MM-dd which results in e.g. 2009-02-01.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Configuration>
  
    <Date format="yyyy/MM/dd"/>

  </Configuration>
</QuickRev>

18.12. Element: QuickRev / Configuration / Severities | States

Name Use Values Changeable via the QuickRev menu Description
Element Severities optional Severity+ no Defines the severities to be used. The order of elements is the same order in which the Severities will be shown in the list boxes.
Element Severity optional EMPTY no Defines one severity element.
Attributes name required string no The name of the severity.
useSelectedTextAsComment optional true|false no If set to true the selected text will be inserted as comment by creating a new comment via the severity specific Add <severity> Comment menu item.
Element States optional State+ no Defines the states to be used. The order of elements is the same order in which the States will be shown in the list boxes.
Element State optional EMPTY no Defines one state element.
Attributes name required string no The name of the state.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Configuration>
  
    <Severities>
      <Severity name="Major" useSelectedTextAsComment="false"/>
      <Severity name="Minor" useSelectedTextAsComment="false"/>
      ...
    </Severities>
    
    <States>
      <State name="Accepted"/>
      <State name="Rejected"/>
      ...
    </States>

  </Configuration>
</QuickRev>

18.13. Element: QuickRev / Configuration / Information | Conclusion | FollowUpConclusion

Name Use Values Changeable via the QuickRev menu Description
Element Information optional (TextField | TextArea | Choice | Decision | TimeField | DateField)* no Here you have the possibility to add new user defined components to the Information tab. See chapter User Defined Components for definition of new components.
Attributes removeDescriptionField optional true|false no To remove the default description field from the Information tab set this attribute to true.
Element Conclusion optional Initiator?, Reviewer? (any order) no Here you have the possibility to change the Initiator or Reviewer tab at the Conclusion page. If the FollowUpConclusion element is defined the new input components will be assigned to the initial review cycle only, otherwise to all review cycles.
Element FollowUpConclusion optional Initiator?, Reviewer? (any order) no Here you have the possibility to change the Initiator or Reviewer tab at the Conclusion page of the follow up review cycles, if this element is not specified the same values as defined for the Conclusion element will be assigned. The format of this element is the same like for the Conclusion element.
Element Initiator optional (TextField | TextArea | Choice | Decision | TimeField | DateField)* no Here you have the possibility to add new user defined components to the Conclusion/Initiator tab. See chapter User Defined Components for definition of new components.
Attributes removeFinishedField optional true|false no To remove the default Finished check box from the tab set this attribute to true.
Element Reviewer optional (TextField | TextArea | Choice | Decision | TimeField | DateField)* no Here you have the possibility to add new user defined components to the Conclusion/Reviewer tab. See chapter User Defined Components for definition of new components.
Attributes removeFinishedField optional true|false no To remove the default Finished check box from the tab set this attribute to true.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
  <Configuration>

    <Information removeDescriptionField="false">
      <!-- see User Defined Components for definition of new components -->
    </Information>

    <Conclusion>
      <Initiator removeFinishedField="false">
        <!-- see User Defined Components for definition of new components -->
      </Initiator>

      <Reviewer removeFinishedField="false">
        <!-- see User Defined Components for definition of new components -->
      </Reviewer>
    </Conclusion>

    <FollowUpConclusion>
      <!-- same format as defined for the Conclusion element -->
    </FollowUpConclusion>

  </Configuration>
</QuickRev>

18.14. Element: QuickRev / Configuration / EmailClientSettings

Name Use Values Changeable via the QuickRev menu Description
Element EmailClientSettings optional Entry+ Configures the email client. Contains multiple Entry elements.
Element Entry optional string (the value of the key defined with attribute key) yes Defines one email client option.
Attributes key optional string yes The name of the property.

[See] For a list of all possible properties take a look at the JavaMail documentation pages:
http://java.sun.com/products/javamail/javadocs/javax/mail/package-summary.html#package_description and
http://java.sun.com/products/javamail/javadocs/com/sun/mail/smtp/package-summary.html#package_description.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev configName="name">
    
    <EmailClientSettings>    
        <Entry key="property-name">property-value</Entry>
        
        <Entry key="mail.transport.protocol">smtp</Entry>
        <Entry key="mail.host">your host name</Entry>
        <Entry key="mail.smtp.auth">false</Entry>
    </EmailClientSettings>
    
  </Configuration>
</QuickRev>

Chapter 19. QuickRevBoard

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

[See]Take a look at the examples for more information.
[See]See Review History for information about updating the review history.

19.1. Command Line Options

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.
        The 'replace-from' pattern is evaluated as regular expression, 'replace-to' will be escaped.

  [--replace-path-ext <replace-from, replace-to>]
        Extended replacement of the paths to the project files or even the files to be reviewed.
        In difference to the '--replace-path' option the 'replace-to' string will not be escaped,
        so it becomes possible to make use of capturing groups like in the following example:

        --replace-path-ext /my/local/file/path/projects/(.*\.xml) http:///remote/file/path/projects/$1?some_info
        where $1 if the captured group, which contains the file name in this example.

        The same example with a named capturing group:
        --replace-path-ext /my/local/file/path/projects/(?<fileName>.*\.xml) http:///remote/file/path/projects/${fileName}?some_info

        If the option is given more than once the replacement which matches first will be used.
        If '--replace-path' and '--replace-path-ext' are used at the same time the extended replacements will be
        be evaluated first, so if an extended replacement matches no further replacement for the file will be done.

  [--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 GIT: same as for subversion but with commit hash instead of revision number
        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.

  [--stylesheet <path-to-stylesheet>]
    Copies the given stylesheet to the QuickRevBoard and adds it to the generated 'no-latest' project files, so the stylesheet can be resolved in the browser to prevent CORS problems.

  [-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.
        Specifying "--debug" only, will show an additional "Debug" menu which provides different debug options.
        Furthermore you can 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), WARNINGINFOCONFIGFINEFINERFINEST (lowest value), ALL.
        (See java.util.logging.Level for more information)

[See]For some examples see Example Usage

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

Chapter 20. XML Output Format

QuickRev saves the project files as xml. To view the project files in a browser a stylesheet can be assigned to the generated project files via configuration or preferences menu. This page describes the output format as used in the project files.

Name Values Description
Element xml-stylesheet EMPTY A stylesheet can be associated with the project file via config files or the preferences dialog. If no stylesheet is configured this reference will be omitted.
Element QuickRev Info, Files?, Conclusion?, Comments?, FollowUp*, DataLinks?, Metrics The root element.
Attributes version string The QuickRev version the project file was created with.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="./stylesheet_example.xsl"?>

<QuickRev version="1.8.0">
  <Info/>
  <Files/>
  <Conclusion/>
  <Comments/>
  <FollowUp/>
  <DataLinks/>
  <Metrics/>
</QuickRev>

20.1. Element: QuickRev / Info

The Info element contains all information from the Information tab. Furthermore it contains all user defined components for this tab.

Name Values Description
Element Info Initiator*, Description, Note*, Phase, Reviewer*, user defined components* Contains all information from the Information tab.
Element Initiator string For every initiator one Initiator element will be stored in the project file containing their name.
Attributes email string The email address of the initiator.
Element Description string The description of the review.
(This field can be changed by Changing the Default Configuration)
Element Note string Additional notes about this review.
Attributes author string The author of the note.
email string The email address of the author.
id string An internally used uuid of the note (to merge/join different project files).
Element Phase string The current review phase.
Possible values are:
  1. Creation will be stored as phase as long as:

    • Not all required fields on the Information tab have been completed.
    • Not all required fields on the Conclusion / Initiator tab have been completed.

  2. Review will be stored as phase as long as:

    • No reviewer has started the review.
    • Not all specified reviewers have started the review.
    • Not all fields on the Conclusion / Reviewer [<name>] tab(s) have been completed.
    • Not all comment fields to be completed by the reviewer (Severity and Text) have been completed.

  3. Correction will be stored as phase as long as:

    • Not all comment fields to be completed by the initiator (State and Solution) have been completed.
    • If QuickRev is configured to use more than one review cycle and comments have been made during the last review cycle.
      (I.e. the review has to finish with a cycle where all reviewers have filled out there conclusions, but no comments have been assigned anymore otherwise a new cycle has to be started.)

  4. Finished: The final phase after all conditions of the other phases have been fulfilled.

Element Reviewer string For every reviewer one Reviewer element will be stored in the project file containing their name.
Attributes phase Review|Finished If the review phase defined with element Phase is Review an optional phase attribute will be assigned to every reviewer, which defines whether the reviewer has finished the review or is still performing the review.
email string The email address of the reviewer.
Element user defined components string If additional components are configured, for every component an element with the name of the component name will be stored here. If the required attribute of the component is set to true and no value was given for this element, an empty xml tag (e.g. <MyComponent/>) will be written. Otherwise the tag contains the selected respectively initial value of the component. If no initial value is available an empty xml tag will be written as well.
[See] Configuration of own components
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev version="1.8.0">

    <Info>
        <Initiator email="tomse@somewhere.net">tomse</Initiator>
        <Description>Review of the important components</Description>
        <Phase>Review</Phase>
        <Reviewer email="karla@somewhere.net" "phase="Review">karla</Reviewer>
        <Reviewer email="wuff@somewhere.net" phase="Finished">wuff</Reviewer>

        <!-- ... plus user defined components ... -->

    </Info>

</QuickRev>

20.2. Element: QuickRev / Files

The Files element contains all files to be reviewed.

Name Values Description
Element Files File+ Contains all information about the files to be reviewed.
Element File UniqueShortName, URL, Revision, Delta-Revision?, NumberOfLines? Represents one file to be reviewed.
Attributes type svn | ClearCase The type of the file specifying the version control system.
contentType string The content-type of the file which is either text for source code, non-text for files which cannot be displayed in QuickRev or another string specified by a corresponding plug-in.
id string A unique identifier of the file to be referenced by the comments or files in follow-up review cycles.
Element UniqueShortName string Normally this is the filename itself. If there are two files with the same name the UniqueShortName contains the containing directory as well. If the directories have the same name than the parent directory of the directory containing the files etc.. The element is only needed to display the filename in a readable form in the stylesheet or from anywhere else without the base path.
Element URL string The url/path of the file.
Element Revision string The version to be reviewed.
Element Delta-Revision string The base version, if it is a delta review. If it is not, the element is not contained in the file.
Element NumberOfLines string Contains the number of lines in the file. If the file is not a text file this element is omitted. During creation of a new project it is not necessary to load the file content, so the lines cannot be counted and the element is not yet written to the project file. With every new load of the project file, the file content of the review files will be loaded automatically, and after saving the project again the element saved too. The sum of NumberOfLines from all files will be stored in element Metrics .
Attributes total number The total number of lines.
nonEmpty number The number of non-empty lines.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev version="1.8.0">

    <Files>
        <File type="svn" contentType="text" id="f0">
            <UniqueShortName>QuickRev.java</UniqueShortName>
            <URL>file:///.../src/net/tomse/quickRev/QuickRev.java</URL>
            <Revision>5</Revision>
            <Delta-Revision>4</Delta-Revision>
            <NumberOfLines total="1215" nonEmpty="1049"/>
        </File>
        <File type="svn" contentType="text" id="f1">
            <UniqueShortName>Comment.java</UniqueShortName>
            <URL>file:///.../src/net/tomse/quickRev/Comment.java</URL>
            <Revision>6</Revision>
            <NumberOfLines total="240" nonEmpty="202"/>
        </File>
        <File type="svn" contentType="non-text" id="f2">
            <UniqueShortName>doc.pdf</UniqueShortName>
            <URL>file:///.../doc.pdf</URL>
            <Revision>3</Revision>
        </File>
    </Files>

</QuickRev>

20.3. Element: QuickRev / Conclusion

The Conclusion element contains one conclusion element Initiator for the initiator and one Reviewer element per reviewer. The Conclusion element represents the components visible at the Conclusion / <role> [<user-name>] tab.

Name Values Description
Element Conclusion Initiator, Reviewer* Represents the review conclusion.
Element Initiator Effort, Date, Finished, user defined components* Contains the conclusion of the initiator.
Element Reviewer Effort, Date, Finished, user defined components* Contains the conclusion of the reviewer.
Element Effort hh/mm The effort, the initiator / reviewer needed for this review.
The total effort will be stored in the Metrics element.
(This field can be changed by Changing the Default Configuration)
Element Date yyyy-mm-dd The date, where the initiator / reviewer performed the review.
(This field can be changed by Changing the Default Configuration)
The output format of the date is configurable.
Element Finished true|false Whether the initiator / reviewer has finished the current review cycle.
(This field can be changed by Changing the Default Configuration)
Element user defined components string If additional components are configured, for every component an element with the name of the component name will be stored here. If the required attribute of the component is set to true and no value was given for this element, an empty xml tag (e.g. <MyComponent/>) will be written. Otherwise the tag contains the selected respectively initial value of the component. If no initial value is available an empty xml tag will be written as well.
[See] Configuration of own components
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev version="1.8.0">

    <Conclusion>
        <Initiator name="tomse">
            <Effort>00:45</Effort>
            <Date>2009-03-07</Date>
            <Finished>true</Finished>

            <!-- ... plus user defined components ... -->

        </Initiator>

        <Reviewer name="karla">
            <Effort>00:30</Effort>
            <Date>2009-03-07</Date>
            <Finished>true</Finished>

            <!-- ... plus user defined components ... -->

        </Reviewer>
    </Conclusion>

</QuickRev>

20.4. Element: QuickRev / Comments

The Comments element contains one Comment element for every comment made by the reviewer(s).

Name Values Description
Element Comments Comment+ Root element for the comments.
Element Comment Author, Nr, Text, Severity, State?, Solution?, Reference*, Rule*, Duplicate? Represents one comment.
Attributes id string A unique id of the comment to be referenced by other comments in following review cycles.
Element Author string Name of the reviewer which has created the comment.
Element Nr string Number of comment which is counted separate for every reviewer. Starting from the first follow-up review cycle this number is preceded by the index of the follow-up review cycle (e.g. 1.1, 1.2, etc. for first follow-up review cycle).
Element Text string The comment text made by the reviewer.
Element Severity string Selected severity.
Element State string Selected state.
Element Solver string An optional element which is added in case of multiple initiators exist. In this case the name of the initiator which has solved the comment is added here.
Element Solution string The solution given by the initiator to solve the comment or a reason why the comment has been rejected.
Element Reference string References the file or comment the comment corresponds to.
If this element is omitted the comment is a general comment regarding the whole review.
Whether a file or a comment is referenced depends on the attributes file-ref respectively comment-ref, where the former references a file and the latter a comment.
Because one comment can be assigned to multiple files, this element can occur more than once.
If a file is referenced and the file's contentType is non-text (a file which cannot be displayed in QuickRev, so e.g. no line numbers can be referenced) the content of this Reference element describes the part of the file the comment is assigned to.
Attributes file-ref string References a file. The referenced attribute is the id attribute of element File.
This attribute is optional.
lines string If a file is referenced this attributes indicates the lines the comment depends to.
The line numbers are given as comma separated list, where a block is indicated by a minus sign, e.g. 1, 14-26, 37.
This attribute is optional.
data-link-ref string If a file is referenced this attribute references the id of a specific element in this file.
The referenced id is the content of the DataLink element with the corresponding attribute id.
This can be e.g. an element of an UML diagram.
This attribute is optional.
[See] DataLinks
comment-ref string References a comment from the previous review cycle. This attribute is used for comments in FollowUp review cycles only.
The referenced attribute is the id attribute of element Comment.
This attribute is optional.
Element Rule string References a rule from a checklist which has been violated.
Since more rules might be violated this element can occur more than once.
Attributes checklist-ref string References the checklist the rule depends to. The referenced attribute is the id attribute of element Checklist from the checklist file.
rule-ref string References a rule of a checklist. The referenced attribute is the id attribute of element Rule from the corresponding checklist file.
title string The title of the referenced rule. This attribute is useful to display the title even if the referenced checklist is not available.
Element Duplicate string Marks the comment as duplicated to another comment, which is referenced by the comment-ref attribute.
If the comment is marked as duplicated no State and Solution elements will be assigned to the Comment element, because the values are the same as of the referenced (duplicated) comment.
Attributes comment-ref string References the comment this comment is duplicated to. The referenced attribute is the id attribute of element Comment.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev version="1.8.0">

    <Comments>
        <Comment id="c0">
            <Author>tomse</Author>
            <Nr>1</Nr>
            <Text>Example Comment</Text>
            <Severity>Minor</Severity>
            <State>Accepted</State>
            <Solution>ok</Solution>
            <Reference file-ref="f1" lines="26-27"/>
        </Comment>
        <Comment id="c1">
            <Author>karla</Author>
            <Nr>2</Nr>
            <Text>Correct the spelling error</Text>
            <Severity>Spelling</Severity>
            <State>Accepted</State>
            <Solution>ok</Solution>
            <Reference file-ref="f2">Chapter 3</Reference>
            <Reference comment-ref="c3"/>
            <Rule checklist-ref="ChklExam" rule-ref="/3/" title="Use const whenever possible."/>
        </Comment>
        <Comment id="c3">
            <Author>wuff</Author>
            <Nr>1</Nr>
            <Text>Correct spelling</Text>
            <Severity>Spelling</Severity>
            <Reference file-ref="f2">Chapter 3</Reference>
            <Duplicate comment-ref="c0"/>
        </Comment>
        <Comment id="c4">
          <Author>wuff</Author>
          <Nr>2</Nr>
          <Text>Correct the name</Text>
          <Severity>Spelling</Severity>
          <State>Accepted</State>
          <Solver>somewhere</Solver>
          <Solution>solved</Solution>
          <Reference data-link-ref="d0" file-ref="f3">state <i>[QuickRev's Review Cycle/] Creatino</i></Reference>
        </Comment>
    </Comments>

</QuickRev>

20.5. Element: QuickRev / FollowUp

For every new review cycle one FollowUp element is created which contains the comments, conclusions and new or changed file references of this review cycle.

Name Values Description
Element FollowUp Files?, Conclusion, Comments? Contains the information of the follow-up review cycle.
Element Files File+ Contains one File element for every file, where changes have been made or which is added or removed from this review cycle.
Files without changes are not contained in this block.
Files which have been added anew have the same syntax like explained in chapter Files.
If no file was changed, added or removed this element is omitted.
Element File see Files Represents one file which has been changed, added or removed in this review cycle.
If the file has been added the same syntax as described in chapter Files applies.
If the file has been changed or removed, the file is references by attribute file-ref.
If the file has been changed one sub-element Revision indicates the new version used for this review cycle. The Revision element has the same sytax like described in chapter Files.
If the file is removed from the review the attribute deleted with value true shows this.
Attributes file-ref string References a changed or deleted file. The referenced attribute is the attribute id of element File.
deleted true|false If set to true the file is marked as deleted in the current review cycle
Element Conclusion see Conclusion The conclusion of the current review cycle.
The syntax is the same as described in chapter Conclusion.
Element Comments see Comments The comments of the current review cycle.
The syntax is the same as described in chapter Comments.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev version="1.8.0">

  <FollowUp>
  
    <Files>
    
        <!-- files with changed version for this follow-up review cycle -->
        <File file-ref="f0">
            <Revision>12</Revision>
        </File>
        <File file-ref="f1">
            <Revision>16</Revision>
        </File>
        
        <!-- a file which has been added to the new review cycle -->
        <File type="svn" contentType="text" id="f4">
            <UniqueShortName>CommentDialog.java</UniqueShortName>
            <URL>file:///.../src/net/tomse/quickRev/CommentDialog.java</URL>
            <Revision>12</Revision>
            <Delta-Revision>11</Delta-Revision>
            <NumberOfLines total="234" nonEmpty="244"/>
        </File>
        
        <!-- a removed file -->
        <File deleted="true" file-ref="f4"/>
    </Files>
    
    <Conclusion>
      <!-- same format as described in chapter Conclusion -->
    </Conclusion>
    
    <Comments>
      <!-- same format as described in chapter Comments -->
    </Comments>
    
  </FollowUp>

</QuickRev>

20.6. Element: QuickRev / DataLinks

The DataLinks element contains references to elements of a file to be reviewed. This can be e.g. the id of an UML-element which is referenced by a comment.

Name Values Description
Element DataLinks DataLink+ Contains the data link information.
Element DataLink string Contains a reference to an element in a file. This can be e.g. the id of an UML-element of a file.
Since the references will be created by the plugins used with QuickRev they can be in any user defined format. Therefore it is not simply an attribute of an element, but the content of this element to use any string in any format.
The id attribute of this element will be referenced by a comment instead to avoid to much clutter and duplicated data-links in the project files.
Attributes id string A unique identifier of the data-link to be referenced by the comments.
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev version="1.8.0">

  <DataLinks>
    <DataLink id="d0">id:node:state1.creation</DataLink>
    <DataLink id="d1">id:node:note1</DataLink>
  </DataLinks>

</QuickRev>

20.7. Element: QuickRev / Metrics

The element Metrics provides some statistical data of the review.

Name Values Description
Element Metrics Effort, Comments, Files, NumberOfLines, Severity+, State+, user defined countable components* Contains some metrics of the review.
Element Effort hh:mm The sum of all TimeField elements with name Effort from the Conclusion elements.
Element Comments EMPTY Statically information about the comments.
Attributes count number The overall number of comments made in this review.
Element Files EMPTY Statically information about the files to be reviewed.
Attributes count number The overall number of files to be reviewed.
Element NumberOfLines EMPTY Statically information about the line numbers.
Only files with contentType text are taken into account.
Attributes total number The overall number of lines of all files to be reviewed.
nonEmpty number The overall number of non-empty lines of all files to be reviewed.
Element Severity EMPTY Statically information about the selected severities.
For every Severity one element will be written.
Attributes name string The name of the severity.
count number The number of comments where the severity with the assigned name is selected.
Element State EMPTY Statically information about the selected state.
For every State one element will be written.
Attributes name string The name of the state.
count number The number of comments where the state with the assigned name is selected.
Element user defined countable components string If additional components are configured for the Conclusion tabs, for every component which is countable (e.g. TimeField) an element with the name of the component name will be stored here. The content of the element is the sum of all values of the elements with the same name.
(The Effort element is one example for a countable element.)
[See] Configuration of own components
<?xml version="1.0" encoding="UTF-8"?>
<QuickRev version="1.8.0">

    <Metrics>
        <Effort>01:25</Effort>
        <Comments count="2"/>
        <Files count="3"/>
        <NumberOfLines total="1455" nonEmpty="1251"/>
        <Severity count="0" name="Major"/>
        <Severity count="1" name="Minor"/>
        <Severity count="1" name="Spelling"/>
        <State count="2" name="Accepted"/>
        <State count="0" name="Rejected"/>

        <!-- ... plus user defined countable components (e.g. from TimeFields) ... -->

    </Metrics>

</QuickRev>