= 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

  $ 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/*`, `refs/drafts/*` 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/publish/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
---------
