gerrit/Documentation/error-messages.txt
Dave Borowitz 0b3a8796aa Remove "no changes made" error case
This is the error that occurs during push when the only difference
between a new commit and the previous patch set of the change is the
committer. This can happen sometimes after a series of rebases that
don't behave exactly as the user expected. Typically, the user doesn't
know how they got into this state, and they don't know how to get out
of it. (Getting out of it requires splicing in the old commit SHA-1--
or maybe many old commit SHA-1s--in the interactive rebase editor,
which requires more familiarity with interactive rebasing than we
usually expect even from Gerrit users.)

The benefits of keeping this error message are:
 a. It prevents extraneous patch sets.
 b. It avoids the original committer on the change from having to
    fetch and rebase.
 c. It doesn't step on approvals of previous patch sets.

I would argue that the cognitive burden of creating a few extra patch
sets here and there is far outweighed by the minutes or hours of
confusion caused when a user actually puts themselves in this state.
This includes the burden both on the committer doing th push of an
identical patch set, and the original committer of the previous patch
set as in (b).

In many cases the committer identity doesn't change, only the
committer timestamp, in which case the user already has the new copy
of their commit. In the case where it differs, this is really no
different from any other time two committers collaborate on the same
change. Plus, when a user encounters this error, there is a good
chance they will try to recover by pushing a new patch set with a
whitespace change or something, in which case they end up with two
extraneous patch sets and the original committer still has to fetch
and rebase.

Regarding (c), this benefit carried more weight before we implemented
approval copying. Now, with the default configuration of copying
Code-Review on trivial rebase and Verified on no code change, the
extraneous patch sets should have most of their approvals copied, so
they don't interrupt the workflow as much.

Finally, note that there is no security/permissions argument for
keeping this error due to one committer "taking over" commitership of
the change commit from someone else. Any user with Forge Committer
permission can already create a patch set that is identical to a
previous patch set owned by someone else, simply by pushing a
non-identical patch set in between.

In conclusion, the "no changes made" error is no longer worth the
confusion caused, so convert the error into an informational warning
as in other cases.

Bug: Issue 1867
Change-Id: I7ecdd1ae29a7b920288639d034c21fc1ce0edb99
2016-02-09 10:05:58 -05:00

50 lines
2.2 KiB
Plaintext

= Gerrit Code Review - Error Messages
This page provides access to detailed explanations of Gerrit error
messages. For each error message it is explained why the error is
occurring and what can be done to solve it.
== Error Messages
* link:error-branch-not-found.html[branch ... not found]
* link:error-change-closed.html[change ... closed]
* link:error-change-does-not-belong-to-project.html[change ... does not belong to project ...]
* link:error-change-not-found.html[change ... not found]
* link:error-commit-already-exists.html[commit already exists]
* link:error-contains-banned-commit.html[contains banned commit ...]
* link:error-has-duplicates.html[... has duplicates]
* link:error-invalid-author.html[invalid author]
* link:error-invalid-changeid-line.html[invalid Change-Id line format in commit message footer]
* link:error-invalid-committer.html[invalid committer]
* link:error-missing-changeid.html[missing Change-Id in commit message footer]
* link:error-missing-subject.html[missing subject; Change-Id must be in commit message footer]
* link:error-multiple-changeid-lines.html[multiple Change-Id lines in commit message footer]
* link:error-no-common-ancestry.html[no common ancestry]
* link:error-no-new-changes.html[no new changes]
* link:error-non-fast-forward.html[non-fast forward]
* link:error-not-a-gerrit-administrator.html[Not a Gerrit administrator]
* link:error-not-permitted-to-create.html[Not permitted to create ...]
* link:error-not-signed-off-by.html[not Signed-off-by author/committer/uploader in commit message footer]
* link:error-not-valid-ref.html[not valid ref]
* link:error-change-upload-blocked.html[One or more refs/for/ names blocks change upload]
* link:error-permission-denied.html[Permission denied (publickey)]
* link:error-prohibited-by-gerrit.html[prohibited by Gerrit]
* link:error-project-not-found.html[Project not found: ...]
* link:error-squash-commits-first.html[squash commits first]
* link:error-upload-denied.html[Upload denied for project \'...']
* link:error-not-allowed-to-upload-merges.html[you are not allowed to upload merges]
== 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]
SEARCHBOX
---------