git-review/doc/source/installation.rst
Jeremy Stanley 319953d5ab Overhaul Python package metadata and OpenDev URLs
Modernize our package metadata in the following ways:

* switch from description-file to long_description with the file
  attribute, and specify an explicit content type and encoding

* replace the home-page parameter with the newer general url one

* add specific labelled project links for improved navigation from
  PyPI's summary sidebar

* add commandline keyword to help folks searching

* use the specific license metadata in addition to the corresponding
  trove classifier for it

* make sure wheels when built also incorporate the LICENSE and
  AUTHORS files so that we're not distributing them without a copy
  of the license text

* stop flagging wheels as "universal" now that git-review no longer
  supports Python 2.7

* drop the old Sphinx integration config for PBR now that it's no
  longer needed

https://setuptools.readthedocs.io/en/latest/userguide/declarative_config.html

Also update old openstack.org URLs throughout contributor docs and
examples/comments to newer opendev.org counterparts. Remove the old
redundant HACKING.rst file as well as a lingering MANIFEST.in from
the times before PBR was a thing. Replace the CONTRIBUTING.rst with
a shorter one cribbed from bindep. Add the test profile to the one
entry in bindep.txt to make it more apparent that's not a runtime
dependency of git-review. Adjust some old "OpenStack, LLC."
copyrights as indicated by the foundation's "Legal Issues FAQ."

Change-Id: Ie45d4d73ba7b5a860f09cc4f1d849587761d846c
2021-02-26 20:45:24 +00:00

106 lines
3.3 KiB
ReStructuredText

================================
Installation and Configuration
================================
Installing git-review
=====================
``git-review`` can be installed from PyPI or system packages. To install from
PyPI, run::
pip install git-review
Alternatively, refer to the `MediaWiki Guide`__ for information on installing
from system packages.
__ https://www.mediawiki.org/wiki/Gerrit/git-review
.. note:: ``git-review`` requires git version 1.8 or greater.
Windows
-------
The Windows ``cmd`` console has a number of issues with Python and
Unicode encodings which can manifest when reviews include non-ASCII
characters. Python 3.6 and beyond has addressed most issues and is
recommended for Windows users. For earlier Python versions,
modifying the local install with `win-unicode-console
<https://github.com/Drekin/win-unicode-console>`__ may also help.
Setup
=====
By default, git-review will look for a remote named ``gerrit`` for working
with Gerrit. If the remote exists, git-review will submit the current
branch to ``HEAD:refs/for/master`` at that remote.
If the Gerrit remote does not exist, git-review looks for a file
called ``.gitreview`` at the root of the repository with information about
the Gerrit remote. Assuming that file is present, git-review should
be able to automatically configure your repository the first time it
is run.
The name of the Gerrit remote is configurable; see the configuration
section below.
.gitreview file format
======================
Example .gitreview file (used to upload for git-review itself)::
[gerrit]
host=review.opendev.org
port=29418
project=opendev/git-review.git
defaultbranch=master
Required values: ``host``, ``project``
Optional values: ``port`` (default: ``29418``), ``defaultbranch`` (default:
``master``), ``defaultremote`` (default: ``gerrit``).
**Notes**
* Username is not required because it is requested on first run
* Unlike git config files, there cannot be any whitespace before the name
of the variable.
* Upon first run, git-review will create a remote for working with Gerrit,
if it does not already exist. By default, the remote name is ``gerrit``,
but this can be overridden with the ``defaultremote`` configuration
option.
* You can specify different values to be used as defaults in
``~/.config/git-review/git-review.conf`` or
``/etc/git-review/git-review.conf``.
* git-review will query git credential system for Gerrit user/password when
authentication failed over http(s). Unlike git, git-review does not persist
Gerrit user/password in git credential system for security purposes and git
credential system configuration stays under user responsibility.
Hooks
=====
git-review has a custom hook mechanism to run a script before certain
actions. This is done in the same spirit as the classic hooks in git.
There are two types of hooks, a global one which is stored in
``~/.config/git-review/hooks/`` and one local to the repository stored in
``.git/hooks/`` with the other git hook scripts.
**The script needs be executable before getting executed**
The name of the script is $action-review where action can be:
* pre - run at first before doing anything.
* post - run at the end after the review was sent.
If the script returns with an exit status different than zero, git-review will
exit with the custom shell exit code ``71``.