no new changes
==============

With this error message Gerrit rejects to push a commit if the pushed
commit was already successfully pushed to Gerrit in project scope.
In this case there is no new change and consequently there is nothing
for Gerrit to do.

If your push is failing with this error message, you normally
don't have to do anything since the commit was already successfully
pushed. Still this error message may sometimes come as a surprise if
you expected a new commit to be pushed. In this case you should
verify that:

. your changes were successfully committed locally (otherwise there
  is no new commit which can be pushed)
. you are pushing the correct commit (e.g. if you are pushing HEAD
  make sure you have locally checked out the correct branch)

If you are sure you are pushing the correct commit and you are still
getting the "no new changes" error unexpectedly you can take the
commit ID and search for the corresponding change in Gerrit. To do
this simply paste the commit ID in the Gerrit WebUI into the search
field. Details about how to search in Gerrit are explained link:user-search.html[here].

Please note that each commit can really be pushed only once. This
means:

. you cannot push a commit again even if the change for which the
  commit was pushed before was abandoned (but you may restore the
  abandoned change)
. you cannot reset a change to an old patch set by pushing the old
  commit for this change again
. if a commit was pushed to one branch you cannot push this commit
  to another branch in project scope.
. if a commit was pushed directly to a branch (without going through
  code review) you cannot push this commit once again for code
  review (please note that in this case searching by the commit ID
  in the Gerrit WebUI will not find any change)

If you need to re-push a commit you may rewrite this commit by
link:http://www.kernel.org/pub/software/scm/git/docs/git-commit.html[amending] it or doing an interactive link:http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html[git rebase]. By rewriting the
commit you actually create a new commit (with a new commit ID in
project scope) which can then be pushed to Gerrit. If the old commit
contains a Change-Id in the commit message you also need to replace
it with a new Change-Id (case 1. and 3. above), otherwise the push
will fail with another error message.


GERRIT
------
Part of link:error-messages.html[Gerrit Error Messages]
