git-receive-pack
================

NAME
----
git-receive-pack - Receive what is pushed into the repository

SYNOPSIS
--------
[verse]
'git receive-pack'
  [--reviewer <address> | --re <address>]
  [--cc <address>]
  <project>

DESCRIPTION
-----------
Invoked by 'git push' and updates the project's repository with
the information fed from the 'git push' end.

End users can supply options to this command by passing them through
to 'git push', which will relay them automatically.

OPTIONS
-------

<project>::
	The remote repository that will receive the pushed objects,
	and create (or update) changes.  Within Gerrit Code Review
	this is the name of a project.  The optional leading `/`
	and or trailing `.git` suffix will be removed, if supplied.

--reviewer <address>::
--re <address>::
	Automatically add <address> as a reviewer to any change
	created or updated by the pushed commit objects.  These
	changes will appear in the reviewer's dashboard, and will
	also be emailed to the reviewer.
+
May be specified more than once to request multiple reviewers.
+
This is a Gerrit Code Review specific extension.

--cc <address>::
	Carbon-copy <address> on the created or updated changes,
	but don't request them to perform a review.  Like with
	--reviewer the changes will appear in the CC'd user's
	dashboard, and will be emailed to them.
+
May be specified more than once to specify multiple CCs.
+
This is a Gerrit Code Review specific extension.

Above <address> may be the complete email address, or, if Gerrit is
configured with HTTP authentication (e.g. within a single domain),
just the local part (typically username).

ACCESS
------
Any user who has configured an SSH key.

EXAMPLES
--------

Send a review for a change on the master branch to charlie@example.com:
=====
	git push --receive-pack='git receive-pack --reviewer charlie@example.com' ssh://review.example.com:29418/project HEAD:refs/for/master
=====

Send reviews, but tagging them with the topic name 'bug42':
=====
	git push --receive-pack='git receive-pack --reviewer charlie@example.com' ssh://review.example.com:29418/project HEAD:refs/for/master/bug42
=====

Also CC two other parties:
=====
	git push --receive-pack='git receive-pack --reviewer charlie@example.com --cc alice@example.com --cc bob@example.com' ssh://review.example.com:29418/project HEAD:refs/for/master
=====

Configure a push macro to perform the last action:
====
	git config remote.charlie.url ssh://review.example.com:29418/project
	git config remote.charlie.push HEAD:refs/for/master
	git config remote.charlie.receivepack 'git receive-pack --reviewer charlie@example.com --cc alice@example.com --cc bob@example.com'
====

afterwards `.git/config` contains the following:
----
[remote "charlie"]
  url = ssh://review.example.com:29418/project
  push = HEAD:refs/for/master
  receivepack = git receive-pack --reviewer charlie@example.com --cc alice@example.com --cc bob@example.com
----

and now sending a new change for review to charlie, CC'ing both
alice and bob is much easier:
====
	git push charlie
====

SEE ALSO
--------

* link:user-upload.html[Uploading Changes]

GERRIT
------
Part of link:index.html[Gerrit Code Review]
