Download: 3.10.9 | 3.10.8 | 3.10.7 | 3.10.6 | 3.10.5 | 3.10.4 | 3.10.3 | 3.10.2 | 3.10.1 | 3.10.0
Documentation: 3.10.9 | 3.10.8 | 3.10.7 | 3.10.6 | 3.10.5 | 3.10.4 | 3.10.3 | 3.10.2 | 3.10.1 | 3.10.0
Java 11 is EOL since September 2023 and Gerrit already supports Java 17. Support for building Gerrit with Java 11 has been dropped and the default minimum version set to Java 17.0.5.
It's now possible to rebase merge commits directly from the UI.
It's now possible to have plugin generated suggested fixes directly in the UI. This opens the door for AI integration in the review process with Gerrit Code Review.
Please see more details here
Imported projects from other servers is now fully supported, including also queries by change number on Lucene.
It's now possible to list all experiments currently enabled on a Gerrit server by hitting the config/server/experiments endpoint. Please see more details here
A number of rest endpoints have been added to simplify management and observability of Gerrit indexes. It's now possible to:
Attention has been put on reducing the number of email notifications that Gerrit users receive even when no actions need to be taken.
Gerrit no longer send emails to everyone when additional reviewers or CCs are added. Please note, this is also a breaking change, see more details on the change, Change 400822.
Only add owner and uploader to the attention set if the label is copied over to the latest patchset, avoiding emails for votes on older patchsets that don't affect the latest one. The reason for the user being in the attention set is also automatically updated.
Stop always cc'ing all “reviewers by email”, as otherwise they receive more emails than intended.
So far querying changes using the change: predicate did not allow to use the project~changeNumber format. However, since Change 387794 this is the default ID format returned in the ChangeInfo. Being able to use it directly for further queries would be advantageous.
i.e. https://gerrit-review.googlesource.com/q/change:gerrit~399319
This reinforces the concept that project~changeNumber should be the Id to use when trying to unique identify changes. This should be preferred to project~branch~changeId as this can theoretically contain duplicates, as specified in Issue 313935024
Schedule of cache pruning of H2 caches is now configurable. This means that it doesn't necessarily need to run on startup, therefore improving Gerrit startup times. Find more information in the docs.
Indexes have been added to the H2 cache databases, greatly improving performance of persistent caches, especially pruning and building bloom filters.
Robot Comments have been officially deprecated for some time and the checks API framework is recommended since Gerrit 3.6. This is great as it provides a way of greatly reducing the size of the repository. However, unlike fixes suggested in Robot-Comments, Human Suggested fixes could not be applied programmatically, until now.
Gerrit 3.10 introduces a way of suggesting fixes that could then be programmatically applied with the the Apply Stored Fixes endpoint. This is done by adding an extra field fix_suggestions in CommentInfo that will be stored separately on NoteDB.
We don't consider this a breaking change as the comment info payload is serialized as JSON and unknown fields should be ignore when parsing such data format. To be extra cautious, this field is only written if the experiment is enabled.
The experiment can be enabled in gerrit.config like so
[experiments]
enabled = GerritBackendFeature__allow_fix_suggestions_in_comments
So far Gerrit admins have always needed to rely on external tools to delete old logs files, now this feature is brought within Gerrit itself and made easily configurable. See more details under log.timeToKeep
It's now possible to update the commit message with a secondary email, both in the UI and via Rest API.
It's now possible to update the author and the committer identities directly in the UI.
plugins.loadPriorityCurrently there is no way of specifying an order in which plugins should be loaded, other than alphabetical. However, in some complex Gerrit deployments, the order in which plugins are enabled during startup matters.
I.e. In a multi-site setup, if whichever flavour of events-broker implementation is loaded before pull-replication, then some events could effectively go lost, as pull-replication won't be ready to consume them.
By using plugins.loadPriority we can now define the order in which plugins should be loaded, ensuring that no events are lost.
Note: If manually enabling/disabling plugins at runtime, the order is no longer guaranteed.
Change 394841: The commit-msg hook now operates as a no-op for temporary commits, which are identified by a lowercase word followed by an exclamation mark (e.g., fixup!, squash!).
Configure gerrit.createChangeId to ‘always’ to force creation on these cases.
Change 394841 Introduce server_id in change_notes cache and update its version number.
This means that if you're using the change_notes cache, the file needs to be deleted. It will be automatically regenerated.
The accounts index version has been increased to version 14. The changes index version has been increased to version 86. The groups index version has been increased to version 11. The projects index version has been increased to version 9.
The schema version hasn't been updated, however, because Lucen was bumped 2 versions from 7.x to 9.8 the upgrade is supported only from Gerrit v3.9, as Lucene libraries do not support more than one version upgrade at a time.
By default, if you’re upgrading from 3.9, the index is automatically rebuilt upon Gerrit startup after the upgrade.
If you’re upgrading from 3.8 or an earlier version, you must use the Offline upgrade steps below, because of the Lucene upgrade mentioned above.
Note that it is advised to backup existing indexes prior the upgrade in case there is a need to rollback as already existing indexes are affected.
Download the new gerrit.war
Stop Gerrit
Backup the existing indexes in case a rollback is required
Ensure all installed plugins are compatible with the new API
Run init java -jar gerrit.war init -d site_path --batch
Reindex if you are upgrading from a 3.9 versions you don’t need to run reindex (see Online index schema upgrade from 3.9 above). If you still want to you will need to run reindex:
java -jar gerrit.war reindex -d site_path
If you are upgrading from a 3.8 or an earlier version, you must run a reindex of all indexes:
java -jar gerrit.war reindex -d site_path
See the reindex command for other options.
Gerrit v3.10.x supports zero-downtime upgrade from Gerrit v3.9 when configured using either high-availability or multi-site setup.
During the zero-downtime upgrade, Gerrit end-users will not experience any outage or service disruption and will be able to perform any read/write Gerrit operation seamlessly.
The zero-downtime upgrade process for high-availability or multi-site setups consists of the following steps (demo):
Downgrade to Gerrit v3.9 release is possible, but requires the following manual steps:
java -jar gerrit.war init -d site_path --batch java -jar gerrit.war reindex -d site_path
Updated almalinux to 9.3.
Issue 309098227 Change 360646: The introduction of a per-request ref cache for better performance may break the repository consistency
The addition of a new core.usePerRequestRefCache setting, true by default, introduced a per request (currently per request thread) ref cache, helping reduce the overhead of checking if the packed-refs file was outdated. However, in some scenarios, such as multi-site or concurrency between git-receive-pack and git-gc, it may lead to split-brain inconsistencies and, in the worst-case scenario, to the corruption of the underlying repository.
Issue 380898784: The new changes_by_project cache will make the git-upload-pack fail intermittently on projects containing one or more inconsistent changes.
The introduction of the changes_by_project cache is incompatible with projects having one or more inconsistent changes, like changes with /meta refs coming from unexpected Gerrit serverId. The cache makes the git-upload-pack fail intermittently with internal server errors when it fails to load the change meta-data depending on the status of the cache. As a workaround, disable the changes_by_project cache as follows in gerrit.config:
[cache "changes_by_project"]
memoryLimit = 0
Change 409738: Added validation for label copy conditions
Change 407417: Branch links in change metadata now ignore status
This means that clicking the branch link in the change detail section returns all changes associated with that branch, rather than the ones matching the change's status. This will return a much greater number of changes than before, potentially impacting plugin/workflow performance.
Change 404717: Deprecate review command without project argument
Change 413537 Added new current_revision_number field to ChangeInfo that contains the current patch set number
If the consumer is “well designed” adding one extra field in the JSON response should not break any existing behaviour. However, as it‘s a change in the response payload, we’re highlighting this as potentially breaking change.
Change 400821: AutoMerger#lookupFromGitOrMergeInMemory: Remove mergeStrategy parameter
This only impacts plugins.
Change 401198 DiffOperations: Remove unused diffOptions parameter from load methods
Potentially breaking change as it impacts plugins that use the DiffOperations interface.
Change 401977: Use RetryScheduler with backoff when server returns 429
Gerrit UI will now automatically retry the Rest API calls to the backend when the HTTP status code is 429. This could lead to duplicated requests sent to the backend and consequently higher load on the system.
Change 396859: Disable dropdown items for downlading files >50 MB
The 50MB limit is hardcoded and cannot be changed via configuration.
Change 400622: PluginCommandModule requires the plugin name in its constructor, hence all plugins that expose SSH commands need amending with an explicit constructor like the following:
class MySshModule extends PluginCommandModule { @Inject MySshModule(@PluginName String pluginName) { super(pluginName); } }
Change 424338: Fix inline editor
Change 409729: Added REST endpoint to get the commit message of a change
Change 391494: Committer and author identities can be updated in change edit mode via REST
Change 394795: Remove ActionType, ChangeActions and RevisionActions enums forwarded as properties from ChangeActionsPluginApi implementation
Change 405980: Reviewer updates for reviewers by email are returned in change details
Change 410145: Fixed internal server error when posting a review with a ReviewerInput that didn't set the reviewer field
Change 412617: Fix bug that allows inserting a broken pack
Change 413077: Plugins can use VersionedConfigFile to read/write a config file stored in git
Change 399657: Fix WorkQueue bug to ensure reliable execution of scheduled tasks
Change 392460: Added commit sha and change number to “commit already exists (in change)” Push Rejected response.
Change 399237: Improved WorkQueue task thread names
Change 412438: Fix behavior of rules.enable config to disable prolog
Change 419157: Solves a latency regression related to CallerFinder
Change 424957: Mention who owns the change in comment emails
Change 399618: Populate project-created event with instanceId
Change 398918: Don't fire project-created events not produced locally
Change 417000: Allow to reindex changes without notifying listeners
Change 413257: Allow listing tags in descending order
Bump JGit version to c0b415f. You can retrieve the full list of changes with:
git log --no-merges --abbrev-commit --format=oneline bf70c9f4c2e35548bc6d7853284b2c4d5e1d29ef...c0b415fb028b4c1f29b6df749323bbb11599495d
Notable changes are:
ref-prefix scanningIssue 321784734 Fix endless loop when using “is:watched” in project watches.
Previous setting up email notification with is:watched predicate would create an infinite loop that would take a CPU offline.
Change 424318: Update CodeMirror frontend library
Change 389854: Update protobuf version to 21.7
Change 408697: update Soy library
Change 387360: Update Bazel version to 7.0.0
Change 391534: Bazel: Add support for JDK 21
Change 402759: Update commons-compress to 1.25.0
Change 399557: Update reload4j to 1.2.25
Issue 317782004: Update httpcore to 4.4.16
Issue 317790747: Update auto-value to 1.10.4
Issue 317782000: Update httpclient to 4.5.14
Change 400697: Upgrade yarn deps (January 2024)
Change 412497: Update Truth to 1.4.2.
Issue 315957653: account-chip hover-card shows correct email for author and committer
Change 397457: Add syntax highlight support for cjs, cts, and mts file
Change 400824: Fix scrolling to diff rows covered by the header UI
Change 402837: Revert CLs should still say Ready To Submit UI supports updating commit message using a registered secondary email
Change 407157: Add plugin endpoint for account links
Change 407660: Turn Reply button into Sign in button when logged out
Change 407820: Improve reviewer autocomplete on restricted refs/branches
Change 407823: Show checks findings on file list
Change 407825: Prevent pencil wrapping by itself in change metadata
Issue 40015337: Fix browser BACK button when going to plugin pages
Change 416260: Diff processor was simplified. It does not split up into multiple async chunks of work anymore.
Change 396859: Disable dropdown items for downlading files >50 MB
Change 401384: Stop considering combo key after first hit
Change 403277: Only show the Show Blame button if blame is enabled.
Change 416001: Add a replysent plugin event
Change 411358: Fix revision actions constantly showing as “loading” when not signed in
Issue 40004507: Added support for filtering branches/tags in plugins
Issue 330574510: Fix issue with gr-file-list-header not working correctly after writing a comment
Change 394446: fix tabbing for non-emojis starting with colon
Change 395461: Fix emoji selector for all keys
Change 399797: Enable highlighting for Qt code components
Issue 335613081: Fix the saving and rendering of diff-preferences not having an immediate impact on the UI
Change 421257: Fix redirection to the target page upon a successful login
Issue 295374158: Fix UI issue where the focus was unpredictably lost while typing a draft comment
Change 420337: Fix the login button disappearing when the page title was big enough in the navigation bar
Issue 337076005: Fix vertical alignment of header icon and text
Change 425577: Fix bogus account labels
Bug Fixes
Change 495501: sequence set SSH command now enforces strictly increasing sequence values.
Attempts to set a sequence (for changes, accounts, or groups) to a value lower than its current value are now rejected immediately.
Issue 439435039: Check for account existence with username scheme for HTTP and HTTP_LDAP only.
Previously, when LDAP authentication was enabled, user lookups were incorrectly performed using the username external ID scheme, which could lead to failed logins. This change restricts username-based lookups to HTTP and HTTP_LDAP authentication protocols only, ensuring LDAP uses the correct gerrit scheme.
Issue 439859126: Return HTTP 401 for any incoming authentication request with a password longer than 71 chars
Fixed password validation to explicitly fail when a password is longer than 71 characters, matching the Bcrypt limitation. This prevents internal errors and ensures clients receive a proper HTTP 401 (Unauthorized) response instead of an internal exception.
Issue 444049514: Prevent blocking HTTP calls to wait indefinitely.
Fixed an issue where, under heavy concurrent Git/HTTP load, some worker threads could remain stuck indefinitely due to unbounded blocking in synchronous write callbacks. Blocking callbacks are now properly capped by the configured httpd.idleTimeout, ensuring idle or stalled Git/HTTP requests are terminated and threads are released as expected.
Issue 397701289: Notify reviewers on change edit in UI.
Restored reviewer notifications when a change is edited through the web UI. This makes notification behavior consistent with other change updates, ensuring reviewers are informed when an edit may require another review.
Change 510442: Allow WorkQueue to be used with the failsafe.dev library in the high-availability plugin to schedule retryable tasks.
Issue 446941362: Fixed git-upload-pack errors on replicas by skipping unloadable changes.
Fixed an issue where corrupted or unloadable changes could cause Internal Server Errors during git-upload-pack on replicas.
Issue 456521736: Avoid “change N missing from ChangeSet[][]” error when submitting a change with a stale index entry.
Fixed an issue where submitting a change could fail if its index entry was out of sync with the underlying NoteDb data. Gerrit can now backfill missing change information directly from the repository when the index is stale, ensuring that valid changes can still be submitted without repeated retries.
A new configuration option, change.backfillMergeSuperSet, controls this behavior. When enabled, Gerrit reloads change data from the repository instead of failing due to a stale index, making change submissions more reliable in setups that use asynchronous indexing or multiple primaries.
Documentation Updates
71 chars.UI Fixes
Change 511981: gr-access-section: Fix bug with deleting permissions in handleAddedPermissionRemoved.
Resolved an issue where removing a permission (e.g., Delete Own Changes) could also unintentionally remove another permission (e.g., Delete Changes) and incorrectly display an undo option. The UI now correctly tracks and removes only the selected permission, and the undo button appears only for previously saved permissions.
Change 515221: Allow Change Owners to suggest edits in comments.
Change owners can now propose suggested edits directly in comments, even if they are not the original authors of the change.
Change 517961: gr-permission: Fix deleting rule in gr-rule-editor.
Resolved a UI issue where deleting a rule could affect the wrong entry due to DOM node reuse.
Change 512922: Fix rendering of multiple suggested edits when comments contain tabs.
Previously, only the first suggested edit was shown when a comment contained multiple suggestions. Now, all suggestions are displayed correctly, allowing users to view and apply each one individually.
Bug Fixes
Issue 437141693: Fix an issue introduced in Gerrit 3.10.7 where plugins' persisted caches weren't persisted anymore.
Issue 437005987: Prevent creation of tag via rest-api if project is in read only state.
Change 498181 Fix Submit Requirements that used ownerin:group_name with Gerrit internal group names. Groups with external subgroups were unaffected.
Issue 435230894 Fix instances where changes sequence ref is rewind
Enforced strictly increasing ref sequence values to prevent rare stale-read issues on NFS.
Frontend changes
Known issues
Issue 437141693: Plugins' persisted caches aren‘t persisted anymore, due to the removal of the lazy initialization of the H2Cache’s bloomfilter.
The introduction of the performance improvement in Change 473682 has removed the lazy initialization of the H2Cache's bloomfilter which is needed for enabling the persistence of the cache keys. The consequence is that the plugins that were declaring a persistent cache would not be able to persist their cached values anymore.
JGit changes
This includes a fix for races that could occur when deleting refs and another actor tries to pack refs.
You can retrieve the full list of changes with:
git log --no-merges --format=oneline 3f3f3b5...e328d2
Bug Fixes
Issue 430336832 Align delete refs to the rest of Gerrit
The ChangeEditUtil.deleteRef() and StarredChangesUtilNoteDbImpl.deleteRef() failed to set the new object id in the RefUpdate, causing a situation where other parts of the code are expecting a non-null SHA1 and therefore causing potential NPEs.
Change 486742 Fixed project list cache data race due to Caffeine issue
Change 486741 Fixed removeLabel permission not being displayed in access section UI
Issue 412679366 Fixed an issue with a comment's resolved flag not updating
When PostReview.comments is set, they are supposed to replace the value of the draft with the same id (if one exists). The logic were replacing the message, but not the resolved bit. Leading to the update being lost.
Change 482026 Fixed reindexing stale changes in projects with encoded characters
Without this fix, any project with characters in its name that must be encoded would fail staleness checks with a “repository not found: Invalid name” message
Change 473802 Fix wrong column sort in change list
Change 476822 UI: Fix loading fonts with base url
Change 478326 Fix paper-toggle-button for iOS
Change 486743 Fix a special case for preview/apply fix
Change 487821 Use ASM9 opcodes to avoid plugin Jar scan warning
Enhancements
Change 481621 Checks: Display hovercard for previous run attempts
Change 473682 Do not wait for H2 bloomfilter building to respond to requests
Change 481583 Add ‘shift+h’ keyboard shortcut to hide check code pointers in the diff view
Change 462141 Improve error message when failing a submission for FAST_FORWARD_ONLY projects, avoiding also an NPE on the error_log
Documentation Updates
Plugins
Change 473229 Update webhooks plugin from 2e5ec3b to b00a2c2
You can retrieve the full list of changes with:
git log --no-merges --format=oneline 2e5ec3b...b00a2c
Change 480184 Update plugins/replication from branch ‘stable-3.10’ to 5be3cc55304ebdef853fb43ec184a51f59fdf07f
You can retrieve the full list of changes with:
git log --no-merges --format=oneline 9a750e2...5be3cc
Bug fixes
Issue 396060185: Find changes by change number only if imported server IDs are configured.
Change 467421: Prevent change numbers virtualization for sites without imported server id(s).
Issue 410069478: Fix the computation of the change virtual id for imported changes.
Change 469725: Fix incorrect cherryPickOf value when using the REST API to cherry-pick a non-current patchset.
Enhancements
Issue 401141848: Fix ref existence check when creating new refs.
Gerrit v3.6 introduced a new check for verifying the existence of refs before crating new refs and avoiding misleading LOCK_FAILURE errors. The check was implemented using a Repository.resolve() API which would expand the ref name as it was a logical name resolution causing the inability to push some refs, like tags that use the git describe in their names. The issue is fixed by using a proper refs finding and brings back the full refs creation functionality.
Change 472521: Render markdown in check run description
JGit changes
Change 459004: Bump JGit to e328d203f (stable-6.10 tip).
git log --no-merges --oneline d5cc102e7..e328d203
Notable changes are:
Bug fixes
Issue 387440281: Fix the email notification for comments on unchanged files.
Issue 390647051: Fix the reporting of Git/HTTP errors in the httpd_log.
Issue 391394129: Prevent the generation of duplicate entity numbers when resetting the values with ‘gerrit sequence set’ command.
Issue 396060191: Fix log rotation of gc_log avoiding to have it overwritten.
Issue 405165896: Fix project's access section when saving changes in the exclusive ACLs.
Change 462582: CreateBranch: Fix detection of conflicting branch names.
Change 455781: Allow using the core.useFileKeyByProjectCache safely even when performing project removals.
Change 457842: Manage disappearing changes when fetching virtualId.
Issue 396060185: Lookup imported change by change number otherwise it cannot be found.
Enhancements
Issue 40013496: Support SO_TIMEOUT configuration in SMTP email sender.
Change 454224: Introduce auth.externalIdsRefExpiry.
Introduce auth.externalIdsRefExpiry to reduce All-Users access overhead by memoizing the latest external-ids SHA-1 for a configurable duration.
Change 461527: Online upgrade now allows skipping reindex.
Add no_reindex as a supported value for index.onlineUpgrade to enable zero-downtime upgrades without triggering online reindexing.
Documentation Updates
jgit.config documentation for NFS v4 caching.Frontend changes
Change 447863: Fixes a bug where selecting the diff content did not exclude the line numbers on Safari.
Change 459523: Search bar: Fix negations with autocomplete.
Plugin changes
codemirror-editor plugin:
JGit changes
git log --oneline --no-merges c824610ab...d5cc102e7
Notable changes are:
Bug fixes
Issue 389368407: Fix the reporting of UploadValidationListener(s) feedback to the Git client
Issue 388863156: Fix OutOfScopeException reported in error_log when reloading plugins via REST-API
Issue 383513682: Fix Protobuf deserialization of project config with empty Group UUIDs
Change 445421: Fix “undefined is not an object (evaluating ‘navigator.serviceWorker.controller’)” in Gerrit UX
Change 447522: Reduce memory pressure on the JVM GC by reusing Gson objects across events
Issue 365889749: Fix timeouts calculation in SshDaemon
NOTE: All the SSH timeouts have been broken since the merge of Change 274055 released with Gerrit v3.4.* until v3.9.8. This fix makes the timeouts being considered as documented again, which may result in SSH connections being closed prematurely due to the configured timeouts in
gerrit.config.
Change 445522: Improve ssh-rsa host key warning message
Change 445242: Add base url to service-worker url in the Gerrit UX
Change 445041: Fix OpenID authentication redirects to application root by avoiding the addition of extra /
Change 444801: Don't encode just a slash for loginUrl, which would have then redirected to //
Dependency Updates
Issue 317782000: Update org.apache.httpcomponents:httpclient to 4.5.14
Issue 317782004: Update org.apache.httpcomponents:httpcore to 4.4.16
JGit changes
Change 441661 and Change 442381: This JGit bump up to the tip of stable-6.10 brings quite a few notable improvements and features.
numberOfPackFilesSinceBitmap and numberOfObjectsSinceBitmapgit log --oneline --no-merges 1cd87ab79...c824610ab
Notable changes are:
Constants#encode by JDK implementationnumberOfPackFilesAfterBitmap to RepoStatisticsFrontend changes
Other changes
Change 441761: Use prebuilt protobuf toolchain to avoid building protoc from source.
Change 443383: Introduce core.useFileKeyByProjectCache for disabling fileKeyByProjectCache in LocalDiskRepositoryManager.
Setting core.useFileKeyByProjectCache=false allow immediate reflection of the removal of projects from the filesystem to the in-memory Project's state without having to restart Gerrit.
Plugin changes
delete-project updated to c824610abba794a1f8f13d6ff2ec1c09590ce697
git log --no-merges --oneline bd49c1bf4212a166d1246774cb8c70d54ead31ba..e1328bd6cc11542ec909e0537c74b47ae8edecf8
e1328bd Handle 204 response in delete-projectreplication updated to 9a750e2384ccb8975560b4ca76b9b92c535362af
git log --no-merges --oneline 445cd037108a9ad478c187aeb31cb14a8e889a0f..9a750e2384ccb8975560b4ca76b9b92c535362af
5cfb07a Fixed chance for exceptions to block future distributor runs. Fixed an issue where exceptions during task accumulation could cause the replaying flag to become stuck, potentially blocking future distributor runs.Dependency Updates
gitiles to 1.5.0Security Fixes
Performance fixes
Change 438141: Queries with multiple non-index datasource predicates are re-written correctly
Improved query handling to make searches with multiple filters (that aren’t indexed) faster and more reliable, preventing slowdowns and potential failures with large data sets.
Enhancements
Bug Fixes
Change 436577: Add cherry-pick information to change message when cherry-pick results in a new patchset.
Added cherry-pick information to change messages for updates on existing changes, ensuring consistency with new changes created by cherry-picks.
Change 436957: Set change status to WIP for cases when cherry-pick results in a new PS and has conflicts.
Automatically set change status to Work In Progress when a cherry-pick results in conflicts or if the source change is already marked as WIP.
Issue 359613387: Fix download of GJF for versions <= 1.7
Change 438361: Fix duplicate index entries after offline reindex with --reuse.
Prevents duplicate entries during offline reindexing when using the --reuse flag by replacing existing documents instead of inserting new ones.
Issue 368553867: Fix support for a number of groups higher than the index.maxTerms
Issue 360705824: Fix the ability to access projects URLs starting with a number.
Fix redirects for projects URLs starting with a number by refining regex handling and preserving query strings to prevent HTTP 404 errors.
JGit changes
Change 437301 and Change 438081: Update JGit to 1cd87ab790
You can retrieve the full list of changes with:
git log --no-merges --format=oneline cfdfb01f4..1cd87ab790
Notable changes are:
Enhancements
expand_circle_up.Bug Fixes
Issue 346618790: Fix reload of plugins causing incorrect deregistration of dynamic items.
Issue 346350837: Fix binding of ApiModule bindings upon plugin reload.
Issue 344608194: Only suggest hashtags for those matching the input, including also regular expressions.
Issue 343218480: Fix translation of custom Prolog rules SubmitRecord to SubmitRequirement(s).
Security Fixes
Performance fixes
Change 431497: Improved offline reindex performance when disk caches have many hits.
Change 430777: Re-use revwalk for loading ChangeKindCache.
Change 431037: Stop calling addPatchSets() twice call when populating change query result.
Change 431039: Lazy load labelTypes when populating change query result.
Change 431040: Reduce duplicate work when a caller uses both --patch-sets and --current-patch-set in change query.
Change 431018: Clone PatchSetAttribute for currentPatchSet when populating change query result.
if both --patch-sets and --current-patch-set are given, populate the patchSetAttribute for currentPatchSet using the fields already populated or all patch sets.
Documentation Fixes
Issue 352081004: Clarify that comment links work on html-escaped text.
Change 432157: HttpPasswordUpdateEmailDecorator: Fix link to http credentials.
UI Fixes
Change 431878: gr-rest-api-impl: Remove duplicate base url from _fetchB64File
Change 431657: Fix code commenting popup position under Firefox.
Change 431417: Add support for using diff3 for rebasing and cherry-pick with conflicts.
change.diff3ConflictView setting is now honoured also for rebase and cherry-pick with conflicts
Change 429857: Use h2 header for Run GC command.
Change 429822: Relative comment links without / prefix are converted to absolute links.
Any link not starting with / is automatically prefixed https://.
Plugin changes
replication updated to 445cd03
You can retrieve the full list of changes with:
git log --no-merges --format=oneline 56b8ffb..445cd03
notable changes are:
Change 384754: Avoid opportunity to inadvertently block the distributor.
Change 383694: Reduced log level for Task deletion errors in MP setups.
Change 352174: Reduced log level for no-op distributor push consolidations.
delete-project updated to bd49c1bf
You can retrieve the full list of changes with:
git log --no-merges --format=oneline ea78b4b..bd49c1bf
JGit changes
Change 433257 and Change 432237: Update JGit to cfdfb01f4
You can retrieve the full list of changes with:
git log --no-merges --format=oneline c0b415fb0..cfdfb01f4
notable changes are: