From 3fc69ca36a4fc05a00edfc4ea1b8ecff809fe85e Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Thu, 17 Mar 2011 15:22:50 +0100 Subject: [PATCH] Fix error message for rejecting a push to a change of another project Users can still upload a new patch set by explicitly pushing a commit to a change by specifying it as target ref. E.g.: git push origin HEAD:refs/changes/711 If the specified change belongs to another project, Gerrit rejects the push with the error message "change ... not found". This error message is incorrect since the change actually exists in Gerrit. This change now provides a better error message for this case: "change ... does not belong to project ...". In addition it adds a documentation page that explains this error. Change-Id: I806acba774f8a1c6c0a6439e92314993f0ab4289 Signed-off-by: Edwin Kempin --- .../error-change-does-not-belong-to-project.txt | 16 ++++++++++++++++ Documentation/error-messages.txt | 1 + .../google/gerrit/server/git/ReceiveCommits.java | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 Documentation/error-change-does-not-belong-to-project.txt diff --git a/Documentation/error-change-does-not-belong-to-project.txt b/Documentation/error-change-does-not-belong-to-project.txt new file mode 100644 index 0000000000..29957e1312 --- /dev/null +++ b/Documentation/error-change-does-not-belong-to-project.txt @@ -0,0 +1,16 @@ +change ... does not belong to project ... +========================================= + +With this error message Gerrit rejects to push a commit to a change +that belongs to another project. + +This error message means that the user explicitly pushed a commit to +a change that belongs to another project by specifying it as target +ref. This way of adding a new patch set to a change is deprecated as +explained link:user-upload.html#manual_replacement_mapping[here]. It is recommended to only rely on Change-ID's for +link:user-upload.html#push_replace[replacing changes]. + + +GERRIT +------ +Part of link:error-messages.html[Gerrit Error Messages] diff --git a/Documentation/error-messages.txt b/Documentation/error-messages.txt index 795674b823..7130967460 100644 --- a/Documentation/error-messages.txt +++ b/Documentation/error-messages.txt @@ -11,6 +11,7 @@ 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-invalid-changeid.html[invalid Change-Id line format in commit message] * link:error-missing-changeid.html[missing Change-Id in commit message] diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java index 0d2ea6fc33..f773d4b77a 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java @@ -774,7 +774,7 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook { return; } if (!project.getNameKey().equals(changeEnt.getProject())) { - reject(cmd, "change " + changeId + " not found"); + reject(cmd, "change " + changeId + " does not belong to project " + project.getName()); return; }