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

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

SYNOPSIS
--------
[verse]
'git receive-pack' [--reviewer <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]
