diff --git a/Documentation/error-messages.txt b/Documentation/error-messages.txt index 764c426c12..607d46e8fa 100644 --- a/Documentation/error-messages.txt +++ b/Documentation/error-messages.txt @@ -10,6 +10,7 @@ Error Messages -------------- * 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 ...] diff --git a/Documentation/error-you-are-not-author.txt b/Documentation/error-you-are-not-author.txt new file mode 100644 index 0000000000..3f14d2fc99 --- /dev/null +++ b/Documentation/error-you-are-not-author.txt @@ -0,0 +1,145 @@ +you are not author ... +========================= + +Gerrit verifies for every pushed commit that the e-mail address of +the author matches one of the registered e-mail addresses of the +pushing user. If this is not the case pushing the commit fails with +the error message "you are not author ...". This policy can be +bypassed by having the access right '+1 Forge Author Identity' in the +link:access-control.html#category_FORG['Forge Identity'] category. + +This error may happen for two reasons: +1. incorrect configuration of the e-mail address on client or server + side +2. missing privileges to push commits of other authors + + +Incorrect configuration of the e-mail address on client or server side +---------------------------------------------------------------------- + +If pushing to Gerrit fails with the error message "you are not +author ..." and you are the author of the commit for which the push +fails, then either you have not successfully registered this e-mail +address for your Gerrit account or the author information of the +pushed commit is incorrect. + +Configuration of e-mail address in Gerrit +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Check in Gerrit under 'Settings -> Identities' which e-mail addresses +you've configured for your Gerrit account, if no e-mail address is +registered go to 'Settings -> Contact Information' and register a new +e-mail address there. Make sure you confirm your e-mail address by +clicking on the link in the e-mail verification mail sent by Gerrit. +If you don't receive the e-mail verification mail it might be that it +was caught by your spam filter. + +Incorrect author information +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For every commit Git maintains the author. If not explicitly +specified Git computes the author on commit out of the Git +configuration parameters 'user.name' and 'user.email'. + +---- + $ git config -l + ... + user.name=John Doe + user.email=john.doe@example.com + ... +---- + +A commit done with the above Git configuration would have +"John Doe " as author. + +You can see the author information for existing commits in the +history. + +---- + $ git log + commit cbe31bdba7d14963eb42f7e1e0eef1fe58698c05 + Author: John Doe + Date: Mon Dec 20 15:36:33 2010 +0100 + + my commit + +---- + +Check in Git that the author information of the commit that should +be pushed is correct. The author should have the same e-mail address +that you've configured for your Gerrit account. If the author +information is incorrect set the Git configuration parameters +'user.name' and 'user.email' to the correct values (you might want to +set this globally by including the option '--global'): + +---- + $ git config user.name "John Doe" + $ + $ git config user.email john.doe@example.com + $ +---- + +Now you should update the author for those commits where the author +information is wrong. If only the last commit is affected you can do +this by amending the last commit and explicitly setting the author: + +---- + $ git commit --amend --author "John Doe " +---- + +If you need to update the author information for several commits it +gets more complicated. In this case you have to do an interactive +git rebase for the affected commits. While doing the interactive +rebase you have to choose 'edit' for those commits for which the +author should be rewritten. When the rebase stops at such a commit +you have to amend the commit with explicitly setting the author +before continuing the rebase. + +Here is an exmaple that shows how the interactive rebase is used to +update the author for the last 3 commits: + +---- + $ git rebase -i HEAD~3 + + edit 51f0d47 one commit + edit 7299690 another commit + edit 304ad96 one more commit + + Stopped at 51f0d47... one commit + You can amend the commit now, with + + git commit --amend + + Once you are satisfied with your changes, run + + git rebase --continue + + $ git commit --amend --author "John Doe " + [detached HEAD baea1e4] one commit + Author: John Doe + 1 files changed, 4 insertions(+), 1 deletions(-) + + $ git rebase --continue + + ... +---- + +For further details about git rebase please check the +link:http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html[Git documentation]. + + +Missing privileges to push commits of other users +------------------------------------------------- + +If pushing to Gerrit fails with the error message "you are not +author ..." and somebody else is author of the commit for which the +push fails, then you have no permissions to forge the author +identity. In this case you may contact the project owner to request +the access right '+1 Forge Author Identity' in the 'Forge Identity' +category or ask the maintainer to commit this change on the author's +behalf. + + +GERRIT +------ +Part of link:error-messages.html[Gerrit Error Messages]