Jump to >

RBTools 0.7.0 Release Notes

Release date: January 18, 2015

Compatibility Notes

RBTools now requires Python 2.6 at a minimum.

We advise everyone to upgrade to Python 2.7.

New Features

Command Aliases

Users can now define their own rbt commands using the new aliases feature. Aliases can either be shortcuts for longer rbt command lines, or can call out to external commands or scripts.

See the aliases documentation for more information.

Patch by Barret Rennie.

Windows and Mac OS X Installers

There are now installers for RBTools for Windows and Mac OS X. This simplifies distribution and installation on these platforms.

Based on work by Bruce Cran.

API Tokens

The in-development Review Board 2.1 will include support for API Tokens. All RBTools commands now include an --api-token parameter, and an equivalent API_TOKEN config file key for using these tokens in lieu of user credentials.

API Caching

RBTools now includes a simple HTTP caching mechanism for API calls. This can speed up the time it takes to run various commands, especially on servers with many repositories or users.

Patch by Barret Rennie.

rbt diff

  • Add -X/--exclude command line options. (Bug #1026)

    This new command line option (and config file entry) is used as the opposite of the -I flag. It can be used to exclude certain file paths (including wildcards) from the resulting diff.

    Patch by Barret Rennie.

rbt land

The new rbt land command is a quick and easy way to push a change that has been reviewed on Review Board to the upstream repository. The change may be in a local branch or stored as a patch on Review Board.

When running against Review Board 2.0+, this command will start by checking the approval state of the review request (on older versions, it just checks for one or more “Ship It!”s). If the change is approved, the patch will be applied just like rbt patch.

The change can optionally be pushed to the remote repository using the -p/--push command line option.

This is currently only available when using Git repositories.

rbt patch

  • Added rbt patch -C

    The new -C option works very much like the -c option, except it commits immediately without opening up an editor.

    Patch by Stephen Gallagher.

  • Enhanced merging capabilities. (Bug #3389)

    Until now, if a patch did not apply entirely cleanly, rbt patch would fail silently. Now, it will do a better job attempting to handle conflicts, and in the case that it can’t handle them, it will partially apply the patch and show a warning about any unapplied changes.

rbt post

  • Added -X/--exclude command line options. (Bug #1026)

    This new command line option (and config file entry) is used as the opposite of the -I flag. It can be used to exclude certain file paths (including wildcards) from the resulting diff.

    Patch by Barret Rennie.

  • Perform additional validation on diffs before creating a review request. (Bug #2733)

    It’s possible to use rbt post to create (or upload) diffs which will not parse or apply correctly. Historically, this would result in an empty review request that would need to be deleted.

    When using Review Board 2.0+, rbt post will now communicate with the Review Board server to do additional validation on the diff prior to creating the review request.

    Patch by Azad Salahli.

rbt stamp

The new rbt stamp command will amend a commit message with a “Reviewed at <url>” line.

This feature is especially useful when using the close-on-submit hooks in Review Board 2.x to close out review requests when the changes are committed.

This is currently only supported for Git repositories.

Patch by Yanjia (Nicole) Xin.

ClearCase

  • Add support for UCM ClearCase activities. (Bug #3179)

    UCM Activities can now be posted using the command rbt post activity:<activity name>[@pvob].

    Patch by Nicolas Dély.

  • Add support for posting changes between ClearCase labels. (Bug #3174)

    Diffs between ClearCase labels can now be posted using lbtype:<label> for the revision arguments.

    Patch by Nicolas Dély.

CVS

  • Make diffs relative to the checkout root.

    Until now, running rbt patch or rbt diff in a subdirectory of the checkout would include only the files in that subdirectory. The behavior has been changed to include all changes in the entire checkout.

    The old behavior can be used with the command rbt post -I .

    Patch by Barret Rennie.

Mercurial

  • Add support for rbt patch -c and rbt patch -C.

    The rbt patch command can now create commits for Mercurial repositories, using the description in the review request as the commit message.

    Patch by Bruce Cran.

Subversion

  • Allow specifying the Subversion credentials on the command line. (Bug #1556)

    Subversion repositories configured to require user credentials for each command could not be used with RBTools. These credentials can now be provided using the new --svn-username and --svn-password options.

  • Make diffs relative to the checkout root.

    Until now, running rbt patch or rbt diff in a subdirectory of the checkout would include only the files in that subdirectory. The behavior has been changed to include all changes in the entire checkout.

    The old behavior can be used with the command rbt post -I .

    Patch by Barret Rennie.

Team Foundation Server

RBTools 0.7 includes support for posting pending changes for Team Foundation Server (TFVC) repositories. This requires Power Pack for server-side support.

Bug Fixes

rbt patch

  • Fixed invoking the editor for commit messages when the command in $EDITOR contained spaces. (Bug #3652)

    Patch by Theo Belaire.

Git-SVN

  • Fix posting of deleted files in git-svn checkouts.

    Patch by Jonathan Doman.

Contributors

  • Azad Salahli

  • Barret Rennie

  • Bruce Cran

  • Christian Hammond

  • David Trowbridge

  • Jonathan Doman

  • Nicolas Dély

  • Stephen Gallagher

  • Theo Belaire

  • Yanjia (Nicole) Xin