Review Board 2.0.9 发布,代码评审工具

来源: 投稿
作者: donghui2020
2014-10-23

Review Board 2.0.9 发布,此版本包括数据库模式修改,更新内容如下:

新特性

  • Support copying text from columns in the diff viewer. (Bug #1094)

    Previously, attempting to select code in the diff viewer would result in a text selection rectangle that spanned columns and line numbers, making it impossible to copy a block of code. This is now fixed for modern versions of Chrome, Firefox, and Internet Explorer.

  • Support Markdown in the Submitted/Discarded description fields.

  • Allow users to opt out of e-mail notifications for their own actions. (Bug #3316)

    By default, Review Board sends email to everyone, including the author of a given update. This is done in order to create a useful record of the conversation in threaded e-mail clients.

    Users can now set a flag in their account preferences to opt out of e-mail for their own actions. Note that any e-mails which are sent to mailing lists that the users are members of will still be delivered to them through the mailing list.

    Patch by Barret Rennie.

安全改进

  • Hardened password storage for new and existing repositories.

可用性改进

  • Fixed behavior of home/end keys in CodeMirror. (Bug #3392)

    The behavior of home/end in Markdown editors did not match the native text editing behavior when lines were long enough to wrap.

性能提升

  • Improve performance of editing text.

    Interactive editing of text in the Markdown editors was slow, especially when typing very fast. These performance problems have been fixed.

  • Improved the database query performance when querying some list resources in the Web API.

扩展

  • Added an is_enabled_for mechanism for NavigationBarHook.

    NavigationBarHook can now decide whether or not to enable itself for each user.

  • Fixed SignalHook disconnection when unloading extensions.

    If an extension passed a sender into the SignalHook when connecting to a signal, it would fail to disconnect when the extension was unloaded.

    Patch by John Talling.

Web API

  • Improved close description support in the API.

    The Review Request resource now has a close_description field that is set when the review request is marked as closed with a description.

  • Renamed the description field when closing review requests.

    To match the new close_description field when fetching the review request resource, the old description parameter used when closing a review request has been renamed to close_description.

  • Fixed the user resource with public Local Sites. (Bug #3582)

    The Local Site specific User Resource would return a 404 for any users who were not members of the Local Site, which caused problems with rbt patch and public Local Sites. This bug was fixed in the 1.7.x series, but it never made it across to 2.0.x or master.

  • Preserve query arguments when redirecting from Review/Reply draft resources.

    The Review/Reply Draft resources redirect to a resource with the appropriate ID, but when doing so, they don’t preserve any query string arguments. This means that if something like ?api_format or ?force-text-type is used, it would be lost.

  • POST and PUT requests can now force the returned text types in payloads.

    GET requests were able to set ?force-text-type= to force any text fields capable of rich text to be converted to the requested type in the returned payload. POST and PUT requests now have this ability as well by settingforce_text_type= in the request data to the desired text type.

  • Custom text fields provided by extensions can now have their text type forced.

    Extensions may provide custom rich text fields, which have their values stored in extra_data in the payload. These values will now respect the?force-text-type= and force_text_type= arguments in requests.

  • Added support for forcing text to HTML in requests.

    "html" is now a valid value for ?force-text-type= andforce_text_type=. The text, whether plain text or Markdown, will be rendered to HTML.

Bug 修复

General

  • Fixed Markdown escaping problems with intra-word underscores.

    The version of marked.js that we were using has a bug where underscores in the middle of a word were not properly ignored, even when GitHub Flavored Markdown was enabled. Because of this, we were adding escaping to intra-word underscores, but this caused that escaping to be visible when viewing text that was rendered by the server-side Python-Markdown implementation.

    We’ve upgraded to a fixed version of marked.js and made the escaping of underscores more precise to fix this.

  • Fixed regressions in the autocomplete behavior for users and groups.

    A change to the autocomplete behavior caused numerous problems with selecting the default completion. This change has been reverted.

  • Fixed some small vertical shifts when opening and closing editors.

  • Fixed double-escaping of file attachment captions in the review pages.

    If a file attachment caption included special characters such as double quotes, they would be displayed incorrectly in the title of the review page for that file.

Dashboard

  • Fixed initial calculations for open issue counts on the dashboard.

    The calculations for how many open issues were present on a review request (done during the upgrade from 1.x to 2.0.x) were not quite right. If you have incorrect issue counts in your dashboard, you can fix them by runningrb-site manage /path/to/site reset-issue-counts.

Diff Viewer

  • When opening the diff viewer in Firefox, you no longer have to click Back twice to get to the previous page.

    Patch by Steven MacLeod.

  • Fixed a couple issues that could cause a “list index out of range” error when viewing interdiffs containing deleted files. (Bug #3481)

Review Requests

  • Prevent users from publishing empty (no modifications made) review request drafts. (Bug #3452)

    It’s possible to end up creating a draft on an existing review request that doesn’t contain any changed fields. Publishing this would create a “review request changed” box with no entries in it. This is now prevented.

    Patch by Mark Loyzer.

  • Fixed e-mail notifications when Local Site groups were present. (Bug #3581)

    In the case where the database had a Local Site configured with a review group, and a user was a member of that group, there were cases where that user might not get e-mail notifications for other review groups.

  • Prevent HTTP 500 errors when failing to generate a thumbnail for file attachments.

Administration

  • Fixed saving file storage settings with choices other than local storage or OpenStack Swift.

    The file storage administration UI would fail to save correctly when trying to configure Amazon S3 or other back-ends, due to some bugs in the OpenStack Swift backend.

    Patch by Andrew Hong.

  • Fixed usage of configured cache backends.

    An upstream change in Django caused a regression in the caching behavior, automatically using the “local memory” cache, regardless of what was configured in the settings. This release fixes that, and in the process makes it possible to switch cache backends without restarting the web server.

  • Fixed the help output of the rb-site manage command.

  • Fixed Python 2.6 compatibility with the condensediffs management command.

Repository Hooks

  • Fixed over-eager commit ID matching in the close-submitted hooks.

    The hooks for closing review requests when code was pushed to a repository would match review requests on the commit ID, but were not also matching the repository. This meant that systems where commit IDs can conflict (such as with Subversion) could end up closing the wrong review request.

Subversion

  • Fixed a couple more issues with missing commit data.

    In the post-commit section of the “New Review Request” page, commits that lacked author information or commit messages would cause server errors. These have been fixed.

Review Board起源于VMware的一些开发者。它基于Django,你可以把它安装在自己的服务器上,工作流和Rietveld极为类似。令人高兴的是它提 供了在diffs里进行语法彩色编码,使得代码阅读变得简便。此外,它还实现了基于Lucene的搜索来帮助管理较大的diffs组。

Review Board在审查补丁(Patch)方面表现完美。一个叫做“提交审查”的工具被用来和SCM系统进行连接(当前支持SVN、CVS、Perforce、Git和Mercurial等),可以允许你请求一个将被提交的修改的审查。用户基础页面将这个过程描述如下:

  1. 你在本地检出的代码上做了些可怕的修改。

  2. 你通过公布diff、编写描述和选择一些审查者来创建一个审查请求。

  3. 你在审查请求中点击“发布”并等待你的审查者看到它。

  4. 其他人看了你的审查请求,说道“这太可怕了,除非什么东西坏掉了。”

  5. 你根据他们的评论更新了你的代码。

  6. 你公布了更新后的diff,以及对他们评论的解答以指明你修改了什么(或者你要说明为什么你不打算按照他们的建议修改代码)。

  7. 大家看了你更新后的代码,并请你继续。

  8. 你将修改提交到仓库中。

  9. 你在审查请求中点击“设置为已提交”来从其他人的面板中移除你的审查请求。


展开阅读全文
12 收藏
分享
加载中
更多评论
3 评论
12 收藏
分享
返回顶部
顶部