diff options
author | Edwin Kempin <edwin.kempin@sap.com> | 2012-11-28 15:16:15 +0100 |
---|---|---|
committer | Edwin Kempin <edwin.kempin@sap.com> | 2012-12-12 09:04:13 +0100 |
commit | ed64d435b2b6380e8f1f235c7eb10246d2d69c8d (patch) | |
tree | 4a9475ea86fbeca9950495ed9405b2825ce0142d | |
parent | f7222cbed98deee86d848bed0be4db70b5bd254e (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.java | 11 |
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; } } |