= Gerrit Code Review - Change-Ids

== Description

Gerrit needs to identify commits that belong to the same review. For
instance, when a change needs to be modified, a second commit can be uploaded
to address the reported issues. Gerrit allows attaching those 2 commits
to the same change, and relies upon a Change-Id line at the bottom of a
commit message to do so. With this Change-Id, Gerrit can automatically
associate a new version of a change back to its original review, even
across cherry-picks and rebases.

To be picked up by Gerrit, a Change-Id line must be in the footer
(last paragraph) of a commit message, and may be mixed
together with link:user-signedoffby.html[Signed-off-by], Acked-by,
or other such lines. For example:

----
  $ git log -1
  commit 29a6bb1a059aef021ac39d342499191278518d1d
  Author: A. U. Thor <author@example.com>
  Date: Thu Aug 20 12:46:50 2009 -0700

      Improve foo widget by attaching a bar.

      We want a bar, because it improves the foo by providing more
      wizbangery to the dowhatimeanery.

      Bug: #42
      Change-Id: Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5b
      Signed-off-by: A. U. Thor <author@example.com>
      CC: R. E. Viewer <reviewer@example.com>
----

In the above example, `Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5b`
is the identity assigned to this change. It is independent of the
commit id. To avoid confusion with commit ids, Change-Ids are typically
prefixed with an uppercase `I`.

Note that a Change-Id is not necessarily unique within a Gerrit instance. It can
be reused among different repositories or branches (see below,
link:user-changeid.html[change-upload]).

[[creation]]
== Creation

Change-Ids are created at commit time on the client side.
A standard 'commit-msg' hook is provided by Gerrit, and
can be installed in the local Git repository to automatically
generate and insert a Change-Id line during `git commit`, when
none is defined yet.

To install the hook, copy it from Gerrit's daemon by executing
one of the following commands while being in the root directory
of the local Git repository:

  $ curl -Lo .git/hooks/commit-msg http://review.example.com/tools/hooks/commit-msg

or:

  $ scp -p -P 29418 john.doe@review.example.com:hooks/commit-msg .git/hooks/

Then ensure that the execute bit is set on the hook script:

  $ chmod u+x .git/hooks/commit-msg

For more details, see link:cmd-hook-commit-msg.html[commit-msg].

[[change-upload]]
Change Upload
--------------

During upload by pushing to `+refs/for/*+` or `+refs/heads/*+`,
Gerrit will try to find an existing review the uploaded commit
relates to. For an existing review to match, the following properties
have to match:

* Change-Id
* Repository name
* Branch name

The following applies in the different scenarios:

* Create a new change
+
If no matching review is found, Gerrit will create a new change for review.

* Update an existing change
+
If a matching review is found, Gerrit will add the new commit as a new patch
set on the existing change.

* Close an existing change
+
If a matching review is found, and the commit is being
pushed directly to refs/heads/*, the existing change is updated with
the new commit, and the change is closed and marked as merged.

If a Change-Id line is not present in the commit message, Gerrit will
automatically generate its own Change-Id and display it on the web.
This line can be manually copied and inserted into an updated commit
message if additional revisions to a change are required.

By default, Gerrit will prevent pushing for review if no Change-Id is provided,
with the following message:

  ! [remote rejected] HEAD -> refs/for/master (missing Change-Id in commit
  message footer)

However, repositories can be configured to allow commits without Change-Ids
in the commit message by setting "Require Change-Id in commit message" to "FALSE".

For more details on using git push to upload changes to Gerrit,
see link:user-upload.html#push_create[creating changes by git push].

== Git Tasks

[[new]]
=== Creating a new commit

When creating a new commit, ensure the 'commit-msg' hook has been
installed in your repository (see above), and don't put a Change-Id
line in the commit message.  When you exit the editor, git will call
the hook, which will automatically generate and insert a unique
Change-Id line.  You can inspect the modified message after the
commit is complete by executing `git show`.

[[amend]]
=== Amending a commit

When amending a commit with `git commit --amend`, leave the
Change-Id line unmodified in the commit message.  This will allow
Gerrit to automatically update the change with the amended commit.

[[rebase]]
=== Rebasing a commit

When rebasing a commit, leave the Change-Id line unmodified in the
commit message.  This will allow Gerrit to automatically update
the change with the rebased commit.

[[squash]]
=== Squashing commits

When squashing several commits together, try to preserve only one
Change-Id line, and remove the others from the commit message.
When faced with multiple lines, try to preserve a line which was
already uploaded to Gerrit Code Review, and thus has a corresponding
change that reviewers have already examined and left comments on.
If you aren't sure which lines Gerrit knows about, try copying and
pasting the lines into the search box at the top-right of the web interface.

If Gerrit already knows about more than one Change-Id, pick one
to keep in the squashed commit message, and manually abandon the
other changes through the web interface.

[[cherry-pick]]
=== Cherry-picking a commit

When cherry-picking a commit, leave the Change-Id line alone to
have Gerrit treat the cherry-picked commit as a replacement for
the existing change.  This can be very useful if the project has
a fast-forward-only merge policy, and the submitter is downloading
and cherry-picking individual changes prior to submission, such as
by link:cmd-cherry-pick.html[gerrit-cherry-pick].

Or, you may wish to delete the Change-Id line and force a new
Change-Id to be generated automatically, thus creating an entirely
new change record for review.  This may be useful when backporting
a change from the current development branch to a maintenance
release branch.

[[update-old]]
=== Updating an old commit

If a commit was created before the availability of Change-Id support,
or was created in a Git repository that was missing the 'commit-msg'
hook, simply copy the "`Change-Id: I...`" line from the first line
of the Description section of the change and amend it to the bottom
of the commit message.  Any subsequent uploads of the commit will
be automatically associated with the prior change.

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

SEARCHBOX
---------
