summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdwin Kempin <edwin.kempin@sap.com>2012-11-28 15:16:15 +0100
committerEdwin Kempin <edwin.kempin@sap.com>2012-12-12 09:04:13 +0100
commited64d435b2b6380e8f1f235c7eb10246d2d69c8d (patch)
tree4a9475ea86fbeca9950495ed9405b2825ce0142d
parentf7222cbed98deee86d848bed0be4db70b5bd254e (diff)
Fix auto closing of changes on direct push
When a commit is directly pushed into a repository (bypassing code review) and this commit has a Change-Id in its commit message then the corresponding change should be automatically closed if it is open. This worked earlier but got broken by commit e6298f7216db0ea489cf9e28352ae1d9205cb190. Change-Id: I531df13c04e165f5f2b425e2a07393c617e71659 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java11
1 files changed, 7 insertions, 4 deletions
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 57996a6aa8..9f781a0af7 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
@@ -1446,8 +1446,8 @@ public class ReceiveCommits {
this.checkMergedInto = checkMergedInto;
}
- boolean validate(boolean ignoreNoChanges) throws IOException {
- if (inputCommand.getResult() != NOT_ATTEMPTED) {
+ boolean validate(boolean autoClose) throws IOException {
+ if (!autoClose && inputCommand.getResult() != NOT_ATTEMPTED) {
return false;
}
@@ -1520,7 +1520,7 @@ public class ReceiveCommits {
final boolean parentsEq = parentsEqual(newCommit, prior);
final boolean authorEq = authorEqual(newCommit, prior);
- if (messageEq && parentsEq && authorEq && !ignoreNoChanges) {
+ if (messageEq && parentsEq && authorEq && !autoClose) {
reject(inputCommand, "no changes made");
return false;
} else {
@@ -2091,7 +2091,10 @@ public class ReceiveCommits {
for (final String changeId : c.getFooterLines(CHANGE_ID)) {
final Change.Id onto = byKey.get(new Change.Key(changeId.trim()));
if (onto != null) {
- toClose.add(new ReplaceRequest(onto, c, cmd, false));
+ final ReplaceRequest req = new ReplaceRequest(onto, c, cmd, false);
+ req.change = db.changes().get(onto);
+ req.patchSets = db.patchSets().byChange(onto).toList();
+ toClose.add(req);
break;
}
}