added explanation for "missing Change-Id" error

Added a documentation page that explains the
"missing Change-Id in commit message" error in
details and what can be done to solve the problem.

Signed-off-by: Edwin Kempin <edwin.kempin@gmail.com>
Change-Id: I58a193f4ad86d0a81ff048e7841e322d8b200732
This commit is contained in:
Edwin Kempin 2010-12-27 09:21:45 +01:00
parent 9b34e35d4b
commit c7f9e45614
3 changed files with 104 additions and 0 deletions

View File

@ -9,11 +9,18 @@ occurring and what can be done to solve it.
Error Messages
--------------
* link:error-missing-changeid.html[missing Change-Id in commit message]
* link:error-squash-commits-first.html[squash commits first]
* link:error-you-are-not-author.html[you are not author ...]
* link:error-you-are-not-committer.html[you are not committer ...]
General Hints
-------------
* link:error-push-fails-due-to-commit-message.html[push fails due to commit message]
GERRIT
------
Part of link:index.html[Gerrit Code Review]

View File

@ -0,0 +1,56 @@
missing Change-Id in commit message
===================================
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.
This error may happen for two reasons:
1. missing Change-Id in the commit message
2. Change-Id is contained in the commit message but not in the last
paragraph
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 WebUI 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].
Change-Id is contained in the commit message but not in the last paragraph
--------------------------------------------------------------------------
To be picked up by Gerrit, a Change-Id must be in the last paragraph
of a commit message, for details, see link:user-changeid.html[Change-Id Lines].
If the Change-Id is contained in the commit message but not in its
last paragraph you have to update the commit message and move the
Change-ID into the last paragraph. 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]

View File

@ -0,0 +1,41 @@
Push fails due to commit message
================================
If Gerrit rejects pushing a commit it is often the case that there is
an issue with the commit message of the pushed commit. In this case
often the problem can be resolved by fixing the commit message.
If the commit message of the last commit needs to be fixed you can
simply amend the last commit (please find a detailed description in
the link:http://www.kernel.org/pub/software/scm/git/docs/git-commit.html[Git documentation]):
----
$ git commit --amend
----
If you need to fix the commit messages of several commits or of any
commit other than the last one you have to do an interactive git
rebase for the affected commits. While doing the interactive rebase
you can e.g. choose 'reword' for those commits for which you want to
fix the commit messages. For a detailed description of git rebase
please check the link:http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html[Git documentation].
Please use interactive git rebase with care as it rewrites existing
commits. Generally you should never rewrite commits that have already
been submitted in Gerrit.
[[commit_hooks]]
Sometimes commit hooks are used to automatically insert/update
information in the commit message. If such information is missing in
the commit message of existing commits (e.g. because the commit hook
was only configured later) rewriting the commits will (re)execute the
commit hook and so update the commit messages. If you do an
interactive rebase to achieve this make sure that the affected
commits are really rewritten, e.g. by choosing 'reword' for all these
commits and then confirming all the commit messages. Just picking a
commit may not rewrite it.
GERRIT
------
Part of link:error-messages.html[Gerrit Error Messages]