diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java index 3fff5bab3f..249b52260c 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java @@ -108,6 +108,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp { private Set extraCC; private Map approvals; private RequestScopePropagator requestScopePropagator; + private ReceiveCommand updateRefCommand; private boolean runHooks; private boolean sendMail; private boolean updateRef; @@ -148,6 +149,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp { this.reviewers = Collections.emptySet(); this.extraCC = Collections.emptySet(); this.approvals = Collections.emptyMap(); + this.updateRefCommand = null; this.runHooks = true; this.sendMail = true; this.updateRef = true; @@ -258,6 +260,10 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp { return this; } + public void setUpdateRefCommand(ReceiveCommand cmd) { + updateRefCommand = cmd; + } + public PatchSet getPatchSet() { checkState(patchSet != null, "getPatchSet() only valid after creating change"); @@ -290,8 +296,12 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp { if (!updateRef) { return; } - ctx.addRefUpdate( - new ReceiveCommand(ObjectId.zeroId(), commit, psId.toRefName())); + if (updateRefCommand == null) { + ctx.addRefUpdate( + new ReceiveCommand(ObjectId.zeroId(), commit, psId.toRefName())); + } else { + ctx.addRefUpdate(updateRefCommand); + } } @Override 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 ef028555b1..c2c7a53d31 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 @@ -1753,6 +1753,7 @@ public class ReceiveCommits { .setValidatePolicy(CommitValidators.Policy.NONE); cmd = new ReceiveCommand(ObjectId.zeroId(), c, ins.getPatchSetId().toRefName()); + ins.setUpdateRefCommand(cmd); } CheckedFuture insertChange() { @@ -1800,7 +1801,7 @@ public class ReceiveCommits { .setMessage(msg) .setRequestScopePropagator(requestScopePropagator) .setSendMail(true) - .setUpdateRef(false)); + .setUpdateRef(true)); if (magicBranch != null) { bu.addOp( changeId,