= Release notes for Gerrit 2.0.14, 2.0.14.1

Gerrit 2.0.14.1 is now available in the usual location:

link:https://www.gerritcodereview.com/download/index.html[https://www.gerritcodereview.com/download/index.html]

*WARNING: This version contains a schema change* (since 2.0.13)

Apply the database specific schema script:
----
  java -jar gerrit.war --cat sql/upgrade012_013_postgres.sql | psql reviewdb
  java -jar gerrit.war --cat sql/upgrade012_013_mysql.sql | mysql reviewdb
----

== New Features
* GERRIT-177  Display branch name next to project in change list
+
Now its easier to see from your Mine>Changes what branch each change goes to.  For some users this may help prioritize reviews.

* GERRIT-27   Add commit SHA-1 search to search panel
+
The search box in the top right now accepts full or abbreviated commit SHA-1s, in addition to change numbers.  This is a more user friendly way to locate a change, instead of hacking the URL with the legacy /r/commitsha1 reference.

* Add "Ignore whitespace" to patch views
+
You can now ask for a difference ignoring leading/trailing whitespace, which may be useful in a review when a block of code is moved underneath an if, or moved out of an if.

* Added a checkbox to switch between contextual/full fil...
+
You can now switch a side-by-side view to full context without going to Settings and returning back.

* GERRIT-115  Automatically close changes when a commit is pushed in...
* GERRIT-54   Close change if a replacement patch set is already sub...
+
These pair of changes basically mean that if you download and merge a commit locally, then push that directly into a branch (assuming you have been granted Push access), the change closes automatically.  Likewise, if a replacement patch set is uploaded to a change, but is already merged to a branch, the change closes automatically.  These close some loopholes where the branches and the changes weren't necessarily always in sync.

* Add a micro scp daemon to our SSHD
* Create gerrit-cherry-pick for client usage
+
Gerrit now runs a micro scp daemon as part of its SSHD, and that scp provides a read-only access of some utility functions for client computers.
gerrit-cherry-pick is a small Bourne shell script end-users can scp onto their local system, then use to download and cherry-pick changes from Gerrit by change number.
More tools are likely to be developed in the future.

* Audit group member addition and removals
* Add automaticMembership flag to account groups
* GERRIT-17   Enable groups to manage contributor agreements
+
Group membership changes are now audited in the account_group_members_audit table, but the information is not currently published in the web UI.  This is a start in the direction of keeping track of "who had access to do what when".  In addition, if you use contributor agreements (like review.source.android.com does), CLA acknowledgement can now be done through group membership, rather than a per-user basis.

* GERRIT-174  Record the submitter in the reflog during merge
+
This is really for the server admin, the Git reflogs are now more likely to contain actual user information in them, rather than generic "gerrit2@localhost" identities.  This may help if you are mining "WTF happened to this branch" data from Git directly.

== Bug Fixes
* GERRIT-213  Fix n/p on a file with only one edit
* GERRIT-66   Always show comments in patch views, even if no edit e...
* Correctly handle comments after last hunk of patch
+
Bug fixes for patch views (e.g. side by side and unified).  Always showing comments is a really nice plus, it helps during a review to ensure that reviewer comments were addressed, even if there was no edit made in that region of the file.

* Don't allow commits to replace in wrong project
+
It was possible to upload a replacement commit in project Foo to a change created in project Bar, putting the Bar change into a corrupt and not-viewable state.  This is now correctly error-checked.

* Update SSHD to 1.0-r784137
* GERRIT-199  Update JGit to 0.4.0-388-gd3d9379
* Update JGit to 0.4.0-398-ge866578
+
JGit suffered from some performance problems when the client was very far ahead of the server, e.g. fetching an Android msm kernel (which is based on an older Linux kernel) into a recent bleeding edge kernel repository took hours.  It now takes seconds.  SSHD was bumped to pick up MINA 2.0.0-M6 which fixes some minor bugs, and is likely to be the final 2.0.0 release version.

* Fix double click on patch set SHA-1 to select only SHA...
* GERRIT-190  Provide feedback when a reviewer is invalid
* GERRIT-191  Show email address matched by completion rather than p...
+
Minor cosmetic improvements.

* Fix multiple recipient To/CC headers in emails
+
Fixed run-on addresses when more than one user was listed in To/CC headers.

== Other Changes
* Start 2.0.14 development (again)
* Small doc updates.
* Merge change 10282
* documentation: Use git config --file path
* Skip the ssh:// download URL if the SSHD is unknown
* Refactor submitter to PersonIdent mapping in MergeOp
* Refactor MergeOp.getSubmitter to return the ChangeAppr...
* Remove invalid usage of List.subList(int,int)
* Convert command line programs to use args4j
* Don't permit overlapping Edit instances in patch scrip...
* Merge change 10347
* Update executablewar to 1.2
* Pass the PatchScriptSettings back as part of the Patch...
* Move PatchScriptSettings to .data package
* Use ValueChangedHandler for CheckBox update events in ...
* Display post-image lines in side-by-side view when ign...
* Use binary search when pulling lines from SparseFileCo...
* Fix compile error in PatchFile
* Don't try to auto-close changes on branch delete
* Document the new gerrit-cherry-pick command
* gerrit 2.0.14
+

* Start 2.0.15 development
* GERRIT-221  Ensure RevCommit's body buffer is available when needed
* Fix stack trace capture in Receive error path
* Fix --reviewer during replace patch set
* Document git receive-pack with Gerrit options
* Add toString debugging aids to SparseFileContent
* GERRIT-220  Fix bad diff display near empty comment caused edits
* gerrit 2.0.14.1