Release notes for Gerrit 2.0.10
===============================

Gerrit 2.0.10 is now available in the usual location:

link:http://code.google.com/p/gerrit/downloads/list[http://code.google.com/p/gerrit/downloads/list]


New Features
------------

* GERRIT-129  Make the browser window title reflect the current scre...
+
Useful usability enhancement when you have multiple tabs open.

* GERRIT-132  Allow binary files to be downloaded from changes for l...
+
Useful if you need to view say a Microsoft Word document or a PDF.

* GERRIT-130  Allow publishing comments on non-current patch sets
+
Now comments can still be published, even if the change owner has uploaded a replacement while you were creating drafts.

* GERRIT-138  Show the author name in change submitted email notific...
+
Minor enhancement to the way submitted emails are formatted.

Bug Fixes
---------

* GERRIT-91   Delay updating the UI until a Screen instance is fully...
+
This is a huge UI improvement.  Gerrit now waits to display until the data is ready and the UI is updated.  Thus you won't see it show stale data, and then suddenly update to
whatever you actually clicked on.

* GERRIT-134  Allow users to preview how Gerrit will format an inlin...
+
Also a huge usability improvement.

* Update SSHD to 1.0-r766258_M5
+
This version of MINA SSHD correctly supports SSH ControlMaster, a trick to reuse SSH connections, supported by repo.  See [http://jira.source.android.com/jira/browse/REPO-11 REPO-11].

* GERRIT-122  Fix too wide SSH Keys table by clipping the server hos...
* GERRIT-131  Fix comment editors on the last line of a file
* GERRIT-135  Enable Save button after paste in a comment editor
* GERRIT-137  Error out if a user forgets to squash when replacing a...

Other Changes
-------------
* Start 2.0.10 development
* Add missing super.onSign{In,Out} calls to ChangeScreen
* Remove the now pointless sign in callback support
* Change our site icon to be more git-like
* Ensure blank space between subject line and body of co...
* Create a debug mode only method of logging in to Gerrit
* Refactor UI construction to be more consistent across ...
* Do not permit GWT buttons to wrap text
* Fix the sign in dialog to prevent line wrapping "Link ...
* Change Patch.ChangeType.ADD to be past tense
* Improve initial page load by embedding user account da...
* Automatically expand inline comment editors for larger...
* Merge change 9533
* Upgrade MINA SSHD to SVN 761333 and mina-core to 2.0.0...
* Use gwtexpui 1.0.4 final
* gerrit 2.0.10