RBTools 0.6 Release Notes¶
Release date: April 7, 2014
Compatibility Notes¶
RBTools now requires Python 2.5 at a minimum.
We advise everyone to upgrade to Python 2.7. We will be deprecating Python releases over the next few major RBTools releases.
New Features¶
Easier Posting of Revisions¶
We have completely redone how you specify revisions when posting using
rbt post
or diffing using rbt diff
.
Previously, posting individual commits (on systems like Git or Mercurial)
required the use of --revision-range
and --parent
, often
leading to verbose command line arguments. This has all changed in 0.6.
Now, to specify a revision or a range of revisions, just pass the native
revision or revision range syntax for your type of repository on the command
line. You don’t need to use --revision-range
or --parent
anymore.
For example, when using Git:
$ rbt post HEAD
$ rbt post 1c83ba9
$ rbt post main-dev..feature-branch
Or Subversion:
$ rbt post 123:126
Specifying a single revision will upload that commit’s changes to
Review Board, generating a parent diff if necessary. It’s all behind the
scenes now. Likewise, specifying a revision range will take care of generating
any parent diffs that may be needed. --parent
is still available,
though, and works as it did before.
Extra arguments passed used to be interpreted as files to include in the diff,
instead of revisions. This behavior has been replaced with the new
-I
arguments described in the section below.
Filtering of Files When Posting¶
rbt post
and rbt diff
now support -I
(or
--include
) arguments to specify exactly which files should be
included when posting or diffing the change.
This argument can be specified multiple times. For example:
$ rbt post -I README -I setup.py
Automatic Guessing of Fields¶
It’s no longer necessary to pass -g
(or --guess-fields
) to
rbt post
in order to automatically fill in the Summary and
Description fields. This is now done automatically for brand new review
requests.
By default, new review requests will have the Summary and Description fields
filled in, and updating an existing review request will leave your existing
fields as-is. You can force the fields to be updated by passing -g
on the command line. You can also disable guessing entirely for a post by
using --guess-fields=no
.
Furthermore, you can set the default behavior to never guess, always guess, or
guess only for new review requests through the GUESS_FIELDS
setting in
.reviewboardrc
.
See the documentation on guessing for more information.
Better Guessed Fields¶
We made a couple changes to improve the guessing of fields.
The order of commit descriptions has been reversed. (Bug #3163)
When we will be using a range of commits, the first (oldest) commit in the range is now used for the summary and the top part of the description. This helps when updating a branch of commits that are just fixing up things in the first commit.
The summary is no longer included in the Description field.
We no longer duplicate this text, reducing what users have to read.
Improved Mercurial Support¶
Our support for Mercurial has greatly improved in this release, thanks to the efforts of Gregory Szorc.
Added support for
--parent
and--tracking-branch
. (Bug #3067)It’s now faster to post changes against a Mercurial repository, particularly in large repositories.
Fixed several issues with guessing the summary and description from commits.
Perforce Shelved Changes Support¶
Users can now post changes from a Perforce shelf without first having to
unshelve those changes. Likewise, you can diff changes using
rbt diff
.
Commit ID Fields¶
Review Board 2.0 has a new field for showing the ID of the commit that has been posted.
Now, when posting against a Git or Mercurial repository, this field will reflect the ID of the commit that was posted.
Posting with Markdown Content¶
Review Board 2.0 supports Markdown-formatted review request descriptions. By default, any commit descriptions posted will be automatically escaped, so that they won’t be unintentionally interpreted as Markdown.
If you happen to write your commit messages using Markdown, you can pass
--markdown
(or set MARKDOWN = True
in
.reviewboardrc
) to prevent the text from being escaped.
Repository Hook Scripts¶
RBTools now bundles a couple of hook scripts for Git for improving workflows and interaction between Git repositories and Review Board.
The git-hook-set-submitted
hook is a pre-receive hook that will
automatically close review requests when commits that reference them are
pushed.
The git-hook-check-approval
hook can block pushing code if the
commit is not reviewed or doesn’t yet have approval. This works with the new
“approval” feature in Review Board 2.0 to allow companies to decide under
what conditions a change is allowed to go in.
Hooks for Mercurial and other types of repositories will be coming in future
releases. Much of the functionality is now part of the RBTools Python API (in
rbtools.hooks
), and can be used to more easily implement custom
hooks.
Patch by Anselina Chia.
New Configuration Changes¶
Removed the dual-meaning of the
--repository-url
andREPOSITORY
settings.Previously, these two settings could be used both for looking up repository names against Review Board, and for specifying the remote repository URL to perform operations against (such as in the case of Subversion).
Now, there’s two sets of options:
--repository-url
/REPOSITORY_URL
(for specifying the URL to communicate with for operations), and--repository
/REPOSITORY
(for specifying the repository on Review Board to match against).If you were using one of these flags in a script, you may need to update your script.
Added a
BASEDIR
setting to configure the default base directory for Subversion.Patch by Dieter Tschanz.
Added a
GIT_USE_EXT_DIFF
setting to allow external diff commands to be used with Git. (Bug #1524)Added a
PUBLISH
setting to control whether-p
is implied. (Bug #3271)
Other Changes¶
Removed Features¶
Removed
post-review
.post-review
has been deprecated for a while, and now, it’s finally gone. Everybody should be usingrbt post
to post new changes to Review Board now. This is better designed, maintained, and has a number of usability improvements overpost-review
.Removed
--revision-range
in favor of the new revision syntax.
Performance Improvements¶
Fewer API calls are needed when posting against Review Board 2.0 servers, speeding up most commands.
Sped up posting changes against large Mercurial repositories.
Patch by Gregory Szorc.
Optimized guessing of summary and description on Mercurial repositories.
Patch by Gregory Szorc.
Optimized checking vob UUIDs on ClearCase repositories. (Bug #3177)
Patch by Nicolas Dély.
Bug Fixes¶
General¶
rbt close¶
rbt post¶
Using
-u
wasn’t working if the repository was being matched based on a configured Mirror Path.Patch by Bradley Baetz.
Bazaar¶
Fixed the wrong text appearing in the Description field when guessing commit descriptions. (Bug #2959)
ClearCase¶
Git¶
Mercurial¶
Fixed issues with guessing the description from commits. Patch by Gregory Szorc.
Perforce¶
Subversion¶
rbt post
no longer incorrectly detects copied files when posting changelists containing only modified files. (Bug #3248)Patch by Vlad Romascanu.
Fixed posting filenames containing
@2x
in the name (for Retina images). (Bug #2702)Fixed issues with directories brought in using
svn:externals
. (Bug #2545)Fixed issues with posting fully replaced files, where a file is removed and a new file with the same name is added.
Patch by Alexey Neyman.
Contributors¶
Alexey Neyman
Anselina Chia
Bradley Baetz
Chris Eagan
Christian Hammond
David Trowbridge
Dieter Tschanz
Gregory Szorc
Iines Piesala
Nicolas Dély
Thom Gerdes
Vlad Romascanu