gerrit/Documentation/error-missing-changeid.txt
Jonathan Nieder 1063e30c58 Reject changes with Change-Id above footer
Documentation/user-change-id.txt explains:

	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 Signed-off-by, Acked-by, or other such lines.

It is easy to forget to do that, producing a commit message like

	Do something great

	Change-Id: I55ca6286e3e4f4fba5d0448333fa99fc5a404a73

	Bug: 12345

Because of the blank line between the Change-Id and other trailer
line, the Change-Id is not picked up by Gerrit.  Worse, if the
repository is configured with "Require Change-Id in commit message"
set to false, then Gerrit comes up with its own change-id for the
change.  If I amend my commit in response to review comments and push
for review again, Gerrit comes up with another change-id, so my
amended version of the change shows up as a new change.

This sequence of events can be avoided by setting "Require Change-Id"
to true, but some projects like to review changes from upstreams that
don't use Gerrit.  Fortunately, even these projects don't need changes
with a Change-Id before the footer.  Treat them as an error
unconditionally, with the same advice to the user about how to clean up
that is already shown in Require Change-Id mode:

	ERROR: Change-Id must be in message footer

	Hint: run
	  git commit --amend
	and move 'Change-Id: Ixxx..' to the bottom on a separate line

As a side benefit, treating this as its own error type also allows
simplifying the error reporting for changes with no Change-Id.

Reported-by: Paul Crowley <paulcrowley@google.com>
Change-Id: Ia5d43370e075d6fc13cd9b22031436f1138e90c0
2019-04-02 22:51:38 -07:00

41 lines
1.6 KiB
Plaintext

= commit xxxxxxx: missing Change-Id in message footer
With this error message Gerrit rejects to push a commit to a project
which is configured to always require a Change-Id in the commit
message if the commit message of the pushed commit does not contain
a Change-Id.
You can see the commit messages for existing commits in the history
by doing a link:http://www.kernel.org/pub/software/scm/git/docs/git-log.html[git log].
To avoid this error you should use the link:cmd-hook-commit-msg.html[commit hook] or EGit to
automatically create and insert a unique Change-Id into the commit
message on every commit.
== Missing Change-Id in the commit message
If the commit message of a commit that you want to push does not
contain a Change-Id you have to update its commit message and insert
a Change-Id.
If you want to upload a new change to Gerrit make sure that you have
configured your environment so that a unique Change-Id is
automatically created and inserted on every commit as explained
above. Now you can rewrite the commits for which the Change-Ids are
missing and the Change-Ids will be automatically created and inserted
into the commit messages. This is explained link:error-push-fails-due-to-commit-message.html#commit_hook[here].
If you want to update an existing change in Gerrit by uploading a new
patch set you should copy its Change-Id from the Gerrit Web UI and
insert it into the commit message. How to update the commit message
is explained link:error-push-fails-due-to-commit-message.html[here].
GERRIT
------
Part of link:error-messages.html[Gerrit Error Messages]
SEARCHBOX
---------