|  | = Release notes for Gerrit 2.1.2 | 
|  |  | 
|  | Gerrit 2.1.2 is now available in the usual location: | 
|  |  | 
|  | link:https://www.gerritcodereview.com/download/index.html[https://www.gerritcodereview.com/download/index.html] | 
|  |  | 
|  | == Schema Change | 
|  |  | 
|  | *WARNING* This release contains multiple schema changes.  To upgrade: | 
|  | ---- | 
|  | java -jar gerrit.war init -d site_path | 
|  | ---- | 
|  |  | 
|  |  | 
|  | == Breakages | 
|  |  | 
|  | * issue 421 Force validation of the author and committer lines | 
|  | + | 
|  | The author line must now match the authenticated user when uploading a | 
|  | change, and both author and committer must match when pushing directly | 
|  | into a branch with the Push Branch permission.  This is a new | 
|  | restriction that did not exist in prior versions and was necessary to | 
|  | close a hole that permitted users to completely forge commits if they | 
|  | had Push Branch +1 granted. | 
|  | + | 
|  | Project owners may grant the new Forge Identity permission to permit a | 
|  | user group to forge the author and/or committer lines in commit | 
|  | objects they are pushing for review, or directly into a branch.  To | 
|  | match prior behavior grant Forge Identity +1 where Read +2 (Upload) | 
|  | exists, and Forge Identity +2 where Push Branch >= +1 exists. | 
|  |  | 
|  |  | 
|  | == New Features | 
|  |  | 
|  | === UI - Diff Viewer | 
|  |  | 
|  | * issue 169 Highlight line-level (aka word) differences in files | 
|  | + | 
|  | Differences within a replaced line are now highlighted with a | 
|  | brighter red or green background color.  Some heuristics are | 
|  | applied to identify and highlight reindented blocks in popular | 
|  | C/C++/Java/C#-like and Python-like languages.  The highlighting | 
|  | algorithm is still simple and could benefit from more fine-tuning, | 
|  | as its largely driven by a simple Myers O(ND) character difference | 
|  | over the replaced lines. | 
|  | + | 
|  | The configuration variable cache.diff.intraline can be used to | 
|  | disable this feature site-wide, if it causes problems. | 
|  |  | 
|  | * Improve side-by-side viewer look-and-feel | 
|  | + | 
|  | The look-and-feel of the side-by-side viewer (and also of the unified | 
|  | viewer) has been significantly improved in this release.  Coloring of | 
|  | regions is more consistently applied, reducing reader distraction. | 
|  | Comment boxes use a cleaner display, and take up less space per line. | 
|  |  | 
|  | * Adjustable patch display settings | 
|  | + | 
|  | Users can now set the tab size or number of columns when displaying a | 
|  | patch.  Toggles are also available to enable or disable syntax | 
|  | coloring, intraline differences, whitespace errors, and visible tabs. | 
|  |  | 
|  | * issue 416 Add download links to side-by-side viewer | 
|  | + | 
|  | The side-by-side viewer now offers links to download the complete file | 
|  | of either the left or right side.  To protect the users from malicious | 
|  | cross-site scripting attacks, the download links force the content to | 
|  | be wrapped inside of a ZIP archive with a randomized file name. | 
|  | Server administrators may use the mimetype.safe configuration setting | 
|  | to avoid this wrapping if they trust users to only upload safe file | 
|  | content. | 
|  |  | 
|  | * Improve performance of 'Show Full Files' | 
|  | + | 
|  | The 'Show Full File' checkbox in the file viewers no longer requires | 
|  | an RPC if the file is sufficiently small enough and syntax coloring | 
|  | was enabled.  The browser can update the UI using the cached data it | 
|  | already has on hand. | 
|  |  | 
|  | * Show old file paths on renamed/copied files | 
|  | + | 
|  | If a file was renamed or copied, the side-by-side viewer now shows the | 
|  | old file path in the column header instead of the generic header text | 
|  | 'Old Version'. | 
|  |  | 
|  | * Improved character set detection | 
|  | + | 
|  | Gerrit now uses the Mozilla character set detection algorithm when | 
|  | trying to determine what charset was used to write a text file. | 
|  | For UTF-8 or ISO-8859-1/ASCII users, there should be no difference | 
|  | over prior releases.  With this change, the server can now also | 
|  | automatically recognize source files encoded in: | 
|  |  | 
|  | a. Chinese (ISO-2022-CN, BIG5, EUC-TW, GB18030, HZ-GB-23121) | 
|  | b. Cyrillic (ISO-8859-5, KOI8-R, WINDOWS-1251, MACCYRILLIC, IBM866, IBM855) | 
|  | c. Greek (ISO-8859-7, WINDOWS-1253) | 
|  | d. Hebrew (ISO-8859-8, WINDOWS-1255) | 
|  | e. Japanese (ISO-2022-JP, SHIFT_JIS, EUC-JP) | 
|  | f. Korean (ISO-2022-KR, EUC-KR) | 
|  | g. Unicode (UTF-8, UTF-16BE / UTF-16LE, UTF-32BE / UTF-32LE / X-ISO-10646-UCS-4-34121 / X-ISO-10646-UCS-4-21431) | 
|  | h. WINDOWS-1252 | 
|  |  | 
|  | * issue 405 Add canned per-line comment reply of 'Done' | 
|  | * issue 380 Use N/P to jump to next/previous comments | 
|  | * Use RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK for tabs | 
|  | * Use a tooltip to explain whitespace errors | 
|  |  | 
|  | === UI - Other | 
|  |  | 
|  | * issue 408 Show summary of code review, verified on all open changes | 
|  | + | 
|  | The open changes views now show the status summary columns, just like | 
|  | a user dashboard shows.  This requires an extra RPC per page display, | 
|  | but can save user time when trying to identify which reviews should be | 
|  | examined. | 
|  |  | 
|  | * Only enable 'Delete' button when there are selections | 
|  | + | 
|  | In Settings panels the delete button is enabled only if at least one | 
|  | row has been selected to be removed. | 
|  |  | 
|  | * SSH commands stop option parsing on \-- | 
|  | + | 
|  | Like most POSIX commands, `\--` now signifies the end of options for | 
|  | any command accessible over SSH. | 
|  |  | 
|  | * Include formatted HTML documentation in WAR | 
|  | + | 
|  | Official release WARs now contain the formatted HTML documentation, | 
|  | and a 'Documentation' menu will display in the main UI (alongside | 
|  | 'All', 'My', 'Admin') to help users access the local copy rather | 
|  | than jumping to the remote Google Code project site. | 
|  |  | 
|  | * Enhanced patch set download commands | 
|  | + | 
|  | Download commands for patch sets are now offered as a tabbed panel, | 
|  | allowing the user to select between 'repo download', 'git pull', | 
|  | or 'git fetch ... && git cherry-pick' or 'git fetch ... && git | 
|  | format-patch' styles, as well as to select the transport protocol | 
|  | used, including anonymous Git or HTTP, or authenticated SSH or HTTP. | 
|  | The current selections are remembered for signed-in users, permitting | 
|  | end-users to quickly reuse their preferred method of grabbing a | 
|  | patch set. | 
|  |  | 
|  | * Theme the web UI with different skin colors | 
|  | + | 
|  | Site administrators can now theme the UI with local site colors | 
|  | by setting theme variables in gerrit.config. | 
|  |  | 
|  | === Permissions | 
|  |  | 
|  | * issue 60 Change permissions to be branch based | 
|  | + | 
|  | Almost all permissions are now per-branch within each project.  This | 
|  | includes Code Review, Verified, Submit, Push Branch, and even Owner. | 
|  | Permissions can be set on a specific branch, or on a wildcard that | 
|  | matches all branches that start with that prefix.  Read permission is | 
|  | still handled at the project level, but future versions should support | 
|  | per-branch read access as well. | 
|  |  | 
|  | * MaxNoBlock category for advisory review levels | 
|  | + | 
|  | The new MaxNoBlock category function can be used in a custom approval | 
|  | category for reviews that are performed by automated lint tools. | 
|  | See link:http://gerrit.googlecode.com/svn/documentation/2.1.2/access-control.html#function_MaxNoBlock[access control] | 
|  | for more details on this function. | 
|  |  | 
|  | === Remote Access | 
|  |  | 
|  | * Enable smart HTTP under /p/ URLs | 
|  | + | 
|  | Git 1.6.6 and later support a more efficient HTTP protocol for both | 
|  | fetch/clone and push, by relying upon Git specific server side logic. | 
|  | Gerrit Code Review now includes the necessary server side support when | 
|  | accessing repositories using URLs of the form | 
|  | `http://review.example.com/p/'$projectname'.git`. | 
|  | Authentication over smart HTTP URLs is performed using standard HTTP | 
|  | digest authentication, with the username matching the SSH username, | 
|  | but the password coming from a field that is generated by Gerrit and | 
|  | accessible to the user on their Settings > SSH Keys tab. | 
|  | Smart HTTP requests enter the same resource queue as SSH requests, | 
|  | using the embedded Jetty server to suspend the request and later | 
|  | resume it when processing resources are available.  This ensures HTTP | 
|  | repository requests don't overtax the server when made concurrently | 
|  | with SSH requests. | 
|  |  | 
|  | * issue 392 Make hooks/commit-msg available over HTTP | 
|  | + | 
|  | The scp filesystem holding client side tools and hooks is now | 
|  | available over `http://review.example.com/tools/'$name'`.  User | 
|  | documentation is updated with example URLs. | 
|  |  | 
|  | * issue 470 Allow /r/I... URLs | 
|  | + | 
|  | Change-Ids can now be searched for by accessing the URL | 
|  | `http://example.com/r/'Ichangeid'`, similar to how commits | 
|  | can be searched by `http://example.com/r/'commitsha1'`. | 
|  |  | 
|  | * gerrit-sshd: Allow double quoted strings | 
|  | + | 
|  | SSH command arguments may now be quoted with double quotes, in | 
|  | addition to single quotes.  This can make it easier to intermix | 
|  | quoting styles with the shell that is calling the SSH client . | 
|  |  | 
|  | === Server Administration | 
|  |  | 
|  | * issue 383 Add event hook support | 
|  | + | 
|  | Site administrator managed hook scripts can now be invoked at various | 
|  | points in processing.  Currently these scripts are informational only | 
|  | and cannot influence the outcome of an event.  For more details see | 
|  | link:http://gerrit.googlecode.com/svn/documentation/2.1.2/config-hooks.html[hooks]. | 
|  |  | 
|  | * Add stream-events command | 
|  | + | 
|  | The new 'gerrit stream-events' command can be used over SSH by an | 
|  | end-user to watch a live stream of any visible patch set creation, | 
|  | comments and change submissions.  For more details see | 
|  | link:http://gerrit.googlecode.com/svn/documentation/2.1.2/cmd-stream-events.html[gerrit stream-events]. | 
|  |  | 
|  | * Log HTTP activity to $site_path/logs/httpd_log | 
|  | + | 
|  | When httpd.listenUrl is http:// or https://, requests are | 
|  | logged into `'$site_path'/logs/httpd_log`.  This mirrors the | 
|  | behavior of the SSH daemon, which also logs requests into the | 
|  | same directory.  For proxy URLs HTTP requests aren't logged, | 
|  | since the front-end server is expected to be performing the | 
|  | logging.  Logging can be forced on, or forced off by setting | 
|  | link:http://gerrit.googlecode.com/svn/documentation/2.1.2/config-gerrit.html#httpd.requestLog[httpd.requestLog]. | 
|  |  | 
|  | * Allow the daemon's host key to authenticate to itself | 
|  | + | 
|  | The SSH daemon's host key can now be used to authenticate as the | 
|  | magic user `Gerrit Code Review`.  This user identity is blessed as | 
|  | even more powerful than a user in the Administrators group, as using | 
|  | it requires access to the private half of the host key.  For example: | 
|  | + | 
|  | ---- | 
|  | ssh -p 29418 -i site_path/etc/ssh_host_rsa_key 'Gerrit Code Review'@localhost gerrit flush-caches --all | 
|  | ---- | 
|  |  | 
|  | * Allow $site_path/etc/peer_keys to authenticate peer daemons | 
|  | + | 
|  | Additional public keys for the magical 'Gerrit Code Review' user may | 
|  | be specified in an OpenSSH authorized_keys style file and are | 
|  | functionally equivalent to authenticating with the daemon's host key. | 
|  | The keys are primarily intended to be other daemons, most likely | 
|  | slaves, that share the same set of repositories and database. | 
|  |  | 
|  | * Allow suexec to run any command as any user | 
|  | + | 
|  | The new SSH based suexec command can only be invoked by the magic user | 
|  | `Gerrit Code Review` and permits executing any other command as any | 
|  | other registered user account.  This forms the foundation of allowing | 
|  | a slave daemon process to transparently proxy any write request from a | 
|  | client forward to the current master. | 
|  | + | 
|  | The transparent proxy support is not yet implemented in the slave. | 
|  |  | 
|  | * Support automation of gsql by JSON, -c option | 
|  | + | 
|  | The gsql command now supports JSON as an output format, making | 
|  | software driven queries over SSH easier.  The -c option accepts | 
|  | one query, executes it, and returns. | 
|  |  | 
|  | === Other | 
|  |  | 
|  | * Warn when a commit message isn't wrapped | 
|  | + | 
|  | During receive Gerrit warns the user if their commit messages appears | 
|  | to be incorrectly formatted, by having lines that aren't hard-wrapped | 
|  | or that has an extremely long subject line. | 
|  |  | 
|  | * During merge use existing author identity values | 
|  | + | 
|  | When Gerrit creates a merge commit in order to submit a change, the | 
|  | author information of the merge commit is taken from the submitter. | 
|  | If all of the commits being submitted were written by the submitter, | 
|  | the authorship of the merge commit is copied from one of those commits | 
|  | rather than from the user's preferred account information. | 
|  |  | 
|  |  | 
|  | == Bug Fixes | 
|  |  | 
|  | === UI | 
|  |  | 
|  | * Change "Publish Comments" to "Review" | 
|  | + | 
|  | The term "Publish Comments" was used on two different buttons that | 
|  | performed two different actions.  The first usage was to open the | 
|  | screen which shows the scoring buttons, provides the cover letter | 
|  | editor, and shows the in-line comments for final review before | 
|  | publication.  The button that opens that review screen has been | 
|  | renamed "Review".  The second usage of the button was to actually send | 
|  | out the notification emails, and expose the comments to others.  This | 
|  | button is still called "Publish Comments". | 
|  |  | 
|  | * issue 448 Disable syntax highlighting on unified views | 
|  | + | 
|  | Syntax highlighting in the unified patch view isn't useful if it hides | 
|  | the added and removed lines red/green text color.  Disable it entirely | 
|  | so the add/remove coloring shows up instead. | 
|  |  | 
|  | * Disable 'Syntax Highlighting' and 'Show Full File' on big files | 
|  | + | 
|  | If the file is really big (over 9000 lines), 'Show Full File' is | 
|  | actually disabled on the server side, to prevent the client from | 
|  | being overrun with data.  The UI now reflects this by disabling | 
|  | the checkbox for the user, and adds a tooltip to indicate why its | 
|  | greyed out. | 
|  |  | 
|  | * Don't try to syntax highlight plain text | 
|  | + | 
|  | Plain text files can't benefit from syntax highlighting, its actually | 
|  | more confusing than it is useful.  Skip highlighting on them. | 
|  |  | 
|  | * issue 251 Fix bad syntax highlighting | 
|  | + | 
|  | Prior versions performed syntax highlighting on a per-line basis, | 
|  | resulting in confusing or bogus results in multi-line contexts like | 
|  | C/Java's "/\* ... \*/" style comment.  Fixed by performing | 
|  | highlighting on the entire file contents, even if only some lines are | 
|  | displayed to meet the user's context setting. | 
|  |  | 
|  | * Ensure vertical tabs are visible | 
|  | + | 
|  | Vertical tab markers are red, which means they can be hidden against a | 
|  | whitespace error, or deleted region marker.  Tabs are now shown as | 
|  | black against these cases. | 
|  |  | 
|  | * Handle bare CR in the middle of a line | 
|  | + | 
|  | If a CR ("\r") appears in the middle of a line rather than nestled | 
|  | against an LF as a CRLF pair, its now displayed as a whitespace | 
|  | error, and the line isn't broken at the CR.  This fixes an issue | 
|  | where a mostly CRLF file with a single malformed line ending caused | 
|  | the side-by-side display to render incorrectly (or not at all). | 
|  |  | 
|  | * issue 438 Skip gitlink modes as we can't get a content difference | 
|  | + | 
|  | The special gitlink mode inside of a tree points to a commit in the | 
|  | submodule project.  We can't show the content of it inside of the | 
|  | supermodule. | 
|  |  | 
|  | * issue 456 Support enter to submit on most forms | 
|  | + | 
|  | Enter key on a lot of forms did not activate the reasonable default | 
|  | action, e.g. add a reviewer to an existing review.  Fixed. | 
|  |  | 
|  | * issue 347 Improve handling of files renamed between patch sets | 
|  | + | 
|  | Comment counts in the "history" section of a file viewer were not | 
|  | displayed when the file was renamed between two different patch sets | 
|  | of the same change.  Fixed. | 
|  |  | 
|  | * Fix the style of the Reviewed column header | 
|  | + | 
|  | The reviewed column header wasn't displaying with the same style as | 
|  | its siblings.  Fixed. | 
|  |  | 
|  | * Fix duplicate "Needed By" pointers between changes | 
|  | + | 
|  | If a change's current patch set was used as the parent for multiple | 
|  | patch sets of another change, that dependent change showed up more | 
|  | than once in the "Needed By" list.  Fixed. | 
|  |  | 
|  | * Expand group names to be 255 characters | 
|  | * Update URL for GitHub's SSH key guide | 
|  | * issue 314 Hide group type choice if LDAP is not enabled | 
|  |  | 
|  | === Email | 
|  |  | 
|  | * Send missing dependencies to owners if they are the only reviewer | 
|  | + | 
|  | If the owner of the change is the only reviewer and the change can't | 
|  | be submitted due to a missing dependency, Gerrit failed to send out an | 
|  | email notification.  Fixed. | 
|  |  | 
|  | * issue 387 Use quoted printable strings in outgoing email | 
|  | + | 
|  | Names or subjects with non-ASCII characters were not quoted properly | 
|  | in the email notification headers.  Fixed. | 
|  |  | 
|  | * issue 475 Include the name/email in email body if not in envelope | 
|  | + | 
|  | When the email address from line is a generic server identity, | 
|  | there is no way to know who wrote a comment or voted on a change. | 
|  | An additional from line is now injected at the start of the email | 
|  | body to indicate the actual user. | 
|  |  | 
|  | === Remote Access | 
|  |  | 
|  | * issue 385 Delete session cookie when session is expired | 
|  | + | 
|  | If the session expires and the user clicks "Close" in the session | 
|  | expired popup dialog box, delete the cookie so the user can continue | 
|  | to use the website as an anonymous user. | 
|  |  | 
|  | * Dequote saved OpenID URLs | 
|  | + | 
|  | Certain OpenID URLs were getting double quotes thrown around them | 
|  | after being saved in the last identity cookie on the client.  The | 
|  | quotes were loading back into the dialog on a subsequent sign-in | 
|  | attempt, resulting in an error as double quotes aren't valid in an | 
|  | HTTP URL.  Fixed by dropping the quotes if present. | 
|  |  | 
|  | * Fix NoShell to flush the error before exiting | 
|  | + | 
|  | Sometimes users missed the standard error message that indicated no | 
|  | shell was available, due to a thread race condition not always | 
|  | flushing the outgoing buffer.  Fixed. | 
|  |  | 
|  | * issue 488 Allow gerrit approve to post comments on closed changes | 
|  | + | 
|  | The 'gerrit approve' command previously refused to work on a closed | 
|  | change, but the web UI permitted comments to be added anyway. | 
|  | Fixed by allowing the command line tool to also post comments to | 
|  | closed changes. | 
|  |  | 
|  | * issue 466 Reject pushing to invalid reference names | 
|  | + | 
|  | Gerrit allowed the invalid `HEAD:/refs/for/master` push refspec | 
|  | to actually create the branch `refs/heads/refs/for/master`, which | 
|  | confused any other client trying to push.  Fixed. | 
|  |  | 
|  | * issue 485 Trim the username before requesting authentication | 
|  | + | 
|  | LDAP usernames no longer are permitted to start with or end with | 
|  | whitespace, removing a common source of typos that lead to users | 
|  | being automatically assigned more than one Gerrit user account. | 
|  |  | 
|  | === Server Administration | 
|  |  | 
|  | * daemon: Really allow httpd.listenUrl to end with / | 
|  | + | 
|  | If httpd.listenUrl ended with / the configuration got botched during | 
|  | init and the site didn't work as expected.  Fixed by correctly | 
|  | handling an optional trailing / in this variable. | 
|  |  | 
|  | * issue 478 Catch daemon startup failures in error_log | 
|  | + | 
|  | Startup errors often went to /dev/null, leaving the admin wondering | 
|  | why the server didn't launch as expected.  Fixed. | 
|  |  | 
|  | * issue 483 Ensure uncaught exceptions are logged | 
|  | + | 
|  | Some exceptions were reaching the top of the stack frame without | 
|  | being caught and logged, causing the JRE to print the exception to | 
|  | stderr and then terminate the thread.  Since stderr was redirected | 
|  | to /dev/null by gerrit.sh, we usually lost these messages.  Exception | 
|  | handlers are now installed to trap and log any uncaught errors. | 
|  |  | 
|  | * issue 451 gerrit.sh: Wait until the daemon is serving requests | 
|  | + | 
|  | The gerrit.sh script now waits until the daemon is actually running | 
|  | and able to serve requests before returning to the caller with a | 
|  | successful exit status code.  This makes it easier to then start up | 
|  | dependent tasks that need the server to be ready before they can run. | 
|  |  | 
|  | * gerrit.sh: Don't use let, dash doesn't support it | 
|  | + | 
|  | /bin/sh on Debian/Ubuntu systems is dash, not bash.  The dash | 
|  | shell does not support the let command. | 
|  |  | 
|  | * gerrit.sh: Correct JAVA_HOME behavior | 
|  | + | 
|  | JAVA_HOME now can be overridden by container.javaHome, as the | 
|  | documentation states. | 
|  |  | 
|  | * init: Only suggest downloading BouncyCastle on new installs | 
|  | + | 
|  | Upgrades of an existing installation which has not installed the | 
|  | BouncyCastle library shouldn't be encouraged to download and install | 
|  | the library again.  The administrator has already chosen not to use | 
|  | it, we shouldn't nag them about it. | 
|  |  | 
|  | * issue 389 Catch bad commentlink patterns and report them | 
|  | + | 
|  | A bad commentlink.match pattern could cause the change screen to | 
|  | simply not load, with no errors in the server log, and nothing | 
|  | immediately visible on the client.  Most bad patterns are now caught | 
|  | during server startup and are reported in the server error_log. | 
|  | Certain failures are caught on the client side, and sent to the server | 
|  | error log over RPC.  Bad patterns are simply skipped when logged. | 
|  |  | 
|  | * issue 419 MySQL: Fix account\_group\_members\_audit removed\_on | 
|  | + | 
|  | MySQL has a "feature" which prevented the removed_on column from being | 
|  | NULL when we meant for it to be NULL.  Fixed by using the MySQL | 
|  | suggested work around, which is non-standard SQL. | 
|  |  | 
|  | * issue 424 WAR truncated during init | 
|  | + | 
|  | init sometimes truncated the WAR file to 0 bytes if it was running | 
|  | from the destination WAR.  Fixed by using JGit's LockFile class which | 
|  | writes to a temporary file and does an atomic rename to finish. | 
|  |  | 
|  | * issue 423 Bind to LDAP using only the end-user identity | 
|  | + | 
|  | Microsoft Active Directory doesn't support anonymous binds, and some | 
|  | installations might not be able to create a generic role account for | 
|  | Gerrit Code Review.  The new auth.type LDAP_BIND permits Gerrit to | 
|  | authenticate using only the end-user's credentials, avoiding the need | 
|  | for an anonymous or role account bind. | 
|  |  | 
|  | * issue 423 Defer LDAP server type discovery until first authentication | 
|  | + | 
|  | Microsoft Active Directory wasn't being detected, because the | 
|  | anonymous bind during server startup failed.  Instead the server | 
|  | type is detected during the first user authentication, where we | 
|  | have a valid directory context to query over. | 
|  |  | 
|  | * issue 486 Reload UI if code split fails to download | 
|  | + | 
|  | If the server gets upgraded and the user hasn't reloaded their | 
|  | browser tab since the upgrade, opening a new section of the UI | 
|  | sometimes failed.  Fixed by executing an implicit reload in these | 
|  | cases, reducing the number of times a user sees a failure. | 
|  |  | 
|  | === Development | 
|  |  | 
|  | * issue 427 Adjust SocketUtilTest to be more likely to pass | 
|  | + | 
|  | Some DNS environments, especially those based on OpenDNS, were failing | 
|  | this test case during a build because the upstream resolver was | 
|  | returning back a bogus record for an invalid domain name.  The test | 
|  | was adjusted to use a name that is less likely to be resolved by a | 
|  | broken upstream resolver. | 
|  |  | 
|  | * Fix /become?user_name=... under GWT debugger | 
|  | + | 
|  | The /become URL now accepts ?user_name=who to authenticate, making | 
|  | it easier to setup a launch configuration to debug a particular | 
|  | user account in development. | 
|  |  | 
|  | * Show localhost based SSH URLs | 
|  | + | 
|  | SSH URLs using localhost as the hostname are now visible in the | 
|  | web UI, making it easier to copy and paste SSH URLs when debugging | 
|  | fetching of changes. | 
|  |  | 
|  | * issue 490 Try Titlecase class name first when launching programs | 
|  | + | 
|  | Launching daemon or init from the classes directory on a case | 
|  | insensitive filesystem like Mac OS X HFS+ or Windows NTFS failed. | 
|  | Fixed. | 
|  |  | 
|  | * Misc. license issues | 
|  | + | 
|  | The CDDL javax.servlet package was replaced by an Apache License 2.0 | 
|  | implementation from the Apache Foundation.  The unnecessary OpenXRI | 
|  | package, which was never even included in the distribution, was | 
|  | removed from the license file. | 
|  |  | 
|  |  | 
|  | == Schema Changes in Detail | 
|  |  | 
|  | * Remove Project.Id and use only Project.NameKey | 
|  | + | 
|  | The project_id column was dropped from the projects table, and all | 
|  | associated subtables, and only the name is now used to link records | 
|  | in the database.  This simplifies the schema for eventual changes | 
|  | onto less-traditional storage systems. | 
|  |  | 
|  | * Move sshUserName from Account to AccountExternalId | 
|  | + | 
|  | The ssh\_user\_name column in accounts was moved to an additional row | 
|  | in account\_external\_ids, using external\_id prefix `username:`. | 
|  | This removes the non-primary key unique index from the table, making | 
|  | it easier to move to less traditional storage systems. | 
|  |  | 
|  | * Replace all transactions with single row updates | 
|  | + | 
|  | Schema update operations have been reworked to not require multi-row | 
|  | transaction support in the database.  This makes it easier to port | 
|  | onto a distributed storage system where multi-row atomic updates | 
|  | aren't possible, or to run on MySQL MyISAM tables. | 
|  |  | 
|  |  | 
|  | == Other Changes | 
|  | * Update gwtorm to 1.1.4-SNAPSHOT | 
|  | * Add unique column ids to every column | 
|  | * Remove unused byName @SecondaryKey from ApprovalCategory | 
|  | * Remove @SecondaryKey from AccountGroup | 
|  | * documentation: Remove mention of mysql_nextval.sql script | 
|  | * Drop MySQL function nextval_project_id | 
|  | * documentation: Remove project_id from manual insert | 
|  | * Update JGit to 0.5.1.106-g10a3391 | 
|  | * Split the core receive logic out of the SSH code | 
|  | * Move toProject into PageLinks for reuse | 
|  | * Correct SSH Username to be just Username | 
|  | * Don't display the magic username identity on the identities tab | 
|  | * Show Status column header on the SSH key table | 
|  | * Queue smart HTTP requests alongside SSH requests | 
|  | * Add a password field to the account identities | 
|  | * Authenticate /p/ HTTP and SSH access by password | 
|  | * Advertise the smart HTTP URLs to references | 
|  | * Refactor the SSH session state | 
|  | * Fixing Eclipse settings file | 
|  | * Add --commit to comment-added as there was previously no way to kno... | 
|  | * Fix imports inside of PatchScreen.java | 
|  | * Fix crash while loading project Access tab | 
|  | * Replace our own @Nullable with javax.annotation.Nullable. | 
|  | * Correctly hide delete button on inherited permissions | 
|  | * Allow per-branch OWN +1 to delegate branch ownership | 
|  | * Block inheritance by default on per-branch permissions. | 
|  | * Simplify FunctionState as discussed previously | 
|  | * Restore delete right checkboxes in wild card project | 
|  | * issue 393 Require branch deletion permission for pushes over HTTP | 
|  | * issue 399 Update JGit to 0.5.1.140-g660fd39 | 
|  | * Add standard eclipse generated files to .gitignore | 
|  | * Don't reformat the source if the files are identical | 
|  | * Fix schema 27 upgrade for H2 | 
|  | * Update JGit to 0.5.1.141-g3eee606 | 
|  | * Manage database connections directly in PatchScriptFactory | 
|  | * issue 425 Update user documentation to explain branch access control | 
|  | * Update to gwtjsonrpc 1.2.2-SNAPSHOT | 
|  | * Allow refs/* pattern on new reference rights | 
|  | * Trim reference name from user when adding access right | 
|  | * Execute Git commands with AccessPath.GIT | 
|  | * Update to GWT 2.0.1 | 
|  | * Update to Ehcache 1.7.2 | 
|  | * Update to mime-util 2.1.3 | 
|  | * Update to H2 1.2.128 | 
|  | * issue 442 Fix IncorrectObjectTypeException on initial commit | 
|  | * Compute allowed approval categories separately. | 
|  | * Move new change display to PostReceiveHook | 
|  | * Drop unused formatLanguage property from patch table | 
|  | * issue 447 documentation: Improve Apache mod_proxy configuration | 
|  | * issue 445 Fix whitespace errors with word diff enabled | 
|  | * issue 439 Move syntax highlighting back to client | 
|  | * Remove Mozilla Rhino from our build | 
|  | * Add missing step to add gwtui_dbg configuration | 
|  | * Remove useless imports from Schema_28 | 
|  | * Fix upgrading H2 from schema 20 to current | 
|  | * Move release notes into the repository | 
|  | * issue 454 documentation: Improve bugzilla link example to include # | 
|  | * Drop unused err PrintWriter in Receive | 
|  | * documentation: Describe how to do case insensitive commentlink | 
|  | * Add patch releases to release notes | 
|  | * Update to gwtorm 1.1.4, gwtjsonrpc 1.2.2, gwtexpui 1.2.1 | 
|  | * Update to GWT 2.0.2 | 
|  | * documentation: Remove stupid ReleaseNotes build rules | 
|  | * documentation: Use a per-version directory | 
|  | * Draft 2.1.2 release notes | 
|  | * documentation: Fix version number to only consider x.y.z format | 
|  | * Drop XRI related support from our notices list | 
|  | * documentation: Correct sorting error in notices | 
|  | * documentation: Add JSR 305 and AOP Alliance to licenses | 
|  | * documentation: Correct links to the MPL 1.1 license | 
|  | * Replace CDDL javax.servlet with APLv2 implementation | 
|  | * documentation: Document database.pool* variables | 
|  | * Update 2.1.2 release notes to mention juniversalchardet | 
|  | * Fix whitespace ignore feature | 
|  | * Fix database connection leak in git-receive-pack | 
|  | * Delay marking a file reviewed until its displaying | 
|  | * Simplify patch display to a single RPC | 
|  | * Fix missing right side border of history, dependency tables | 
|  | * Cleanup useless leftmost/rightmost CSS classes | 
|  | * Don't RPC to load the full file if we already have it | 
|  | * Add Forge Identity +3 to permit pushing filtered history | 
|  | * Fix source code formatting in RefControl | 
|  | * Fix combined diffs on merge commits | 
|  | * Fix SparseFileContent for delete-only patches | 
|  | * Simplify some CSS rules for side-by-side viewer | 
|  | * Color entire replace block same background shade | 
|  | * Cleanup CSS for side-by-side view when there are character differen... | 
|  | * documentation: Fix typo on the word database | 
|  | * Always use class wdc on replace line common sections | 
|  | * Fix side-by-side table header CSS glitch | 
|  | * Fix file line padding in side-by-side viewer | 
|  | * Improve the way inline comments are shown | 
|  | * Fix side by side view column headers to use normal font | 
|  | * Tweak the intraline difference heuristics | 
|  | * Refactor and add to streaming events schema | 
|  | * Documentation schema for stream-events command | 
|  | * Fix source code formatting errors in MergeOp | 
|  | * Cleanup display of branches panel when gitweb isn't configured | 
|  | * Fix "Show Tabs" checkbox | 
|  | * Update 2.1.2 release notes | 
|  | * Reorganize 2.1.2 release notes into categories | 
|  | * Hide syntax highlighting checkbox in unified view | 
|  | * Change default tab width to 8 | 
|  | * Ensure drafts redisplay when refreshing the page | 
|  | * Fix tab marker RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | 
|  | * issue 473 Don't aggressively coalesce across lines | 
|  | * Fix intraline difference off-by-one when LF is added | 
|  | * Mark add or delete regions with darker colors | 
|  | * Invalidate the diff cache | 
|  | * Fix build breakage due to missing constants | 
|  | * Fix editable username when authType is LDAP or HTTP_LDAP | 
|  | * issue 481 Fix enter with completion in add reviewer box | 
|  | * Make intraline differences easier to debug | 
|  | * Avoid "es" replaced by "es = Address" | 
|  | * Cleanup line insertions joined against indentation change | 
|  | * Change become to use user_name field | 
|  | * Stop leaking patch controls CSS to other widgets | 
|  | * Fix coloring of tab markers in syntax highlighting | 
|  | * Fix toggling syntax highlighting on partial file | 
|  | * Permit use of syntax highlighting in unified view | 
|  | * Use hunk background colors on unified views with syntax highlighting | 
|  | * Fix source code formatting in ApproveCommand.java | 
|  | * issue 483 Log the type of a non-task after it executes | 
|  | * Update to GWT 2.0.3 | 
|  | * issue 489 Drop host name resolution failure test | 
|  | * issue 483 Remove reliance on afterExecute from WorkQueue | 
|  |  | 
|  | 71b04c00b174b056ed2579683e2c1546d156b75a |