Release Notes

In Development

Bug Fixes

  • When checking for unstaged or uncommitted changes to avoid performing a test rebase, unstaged and uncommitted changes in Git submodules are now ignored since those won’t be rebased anyway.

  • git-review now handles the Git core.hooksPath configuration option correctly. Thus, it installs the commit-msg hook into the core.hooksPath directory, if that option is set. Otherwise, it continues to install the hook into .git/hooks, relative to the root of the checkout.


New Features

  • Add support for –no-thin which is passed to git push. This is useful to work around situations where Gerrit’s JGit and git-review’s C git implementations cannot agree on the pack file contents used to transfer a push. When they disagree you see this as unpack failures due to missing trees. Using –no-thin avoids complicated negotiations and works around this problem.


New Features

  • A new gitreview.branchauthor option allows configuring the change author (owner) name part of the autocreated branch name when downloading changes.

  • A new gitreview.notopic configuration setting makes git-review always behave as if the --notopic command line option was supplied.

  • Added the --notify option, which can be used to ensure specified receivers receives email notifications

Upgrade Notes

  • Not really a deprecation so much as a removal, Gerrit 2.15 (released in 2017) ceased providing a draft state for changes, and many large sites were disabling support for it far earlier than that. As of now, git-review has removed the -D and --draft options entirely, and so can no longer push draft changes on old Gerrit deployments which still allowed them.

  • As of this release, git-review no longer supports running under the Python 2.7 interpreter. The major version component has been increased accordingly. Users wishing to use git-review with Python 2.7 can cap their installations like pip install "git-review<2", though pip version 9 and later will use python_requires package metadata to avoid installing git-review on an unsupported interpreter. Future removal of support for Python 3 minor versions will only result in a minor version increase for corresponding git-review releases.

Bug Fixes

  • The Change-Id generating commit hook is now installed into any detected Git submodules, so that it will take effect when creating changes within a submodule and not just in the parent repository.

  • Encoding was corrected for Git credentials, which was previously causing HTTP authentication to fail under some Python 3 versions.

  • Change download functions now preserve any unapplied local edits on the branch when attempting to reset the worktree.

  • The --no-follow-tags option to git push is now used for all pushes, so that git-review won’t error when encountering a local tag which is absent from Gerrit.

  • For safety, attempts to push a commit with unstaged or uncommitted changes in the worktree will be caught and an error reported, rather than leaving it up to git rebase to spot them. This addresses a situation where users enabling rebase.autostash would otherwise experience data loss when the test rebase is subsequently reset.


Upgrade Notes

  • Support for auto-configuration of topic names based on the presence of keywords in the commit message is removed. Previously, keywords such as bug, bp or lp followed by a number would result in branch names containing the associated number, e.g. bug/123. This feature was OpenStack specific, was a frequent source of bugs and clearly wasn’t being used that often, given that StoryBoard is a thing now and no one had updated this feature to handle that metadata.

Bug Fixes

  • Fixes gitreview process exit code to align with general UNIX process exit code conventions. Specifically, default exit code changed to 1 which stands for “general error”.

  • Fixed usepushurl to work when a read-only mirror being used as origin does not contain refs/changes from gerrit.

  • If a patch has no topic, downloading it will result in a topic of review/{owner}/{ID}. Previously, submitting this would then set the topic to {ID}. This was incorrect behavior and is now resolved.


New Features

  • Patch download now supports change urls. Rather than forcing users to copy only part of a URL to a review, users may now paste the whole change URL.

Upgrade Notes

  • The -c and --compatible command line options have been removed. They had been there so someone could request compatibility with older Gerrits, but the need for this has gone away.

Bug Fixes

  • Fix git review -d M,N for newer gerrit. The “number” field returned via gerrit JSON can be a string (2.13) or a integer (~2.14).

  • Update default gerrit namespace for newer gerrit. According to Gerrit documentation for 2.15.3, refs/for/’branch’ should be used when pushing changes to Gerrit instead of refs/publish/’branch’.