NoteDb: Fix publish draft change by pushing non-draft patch set
When a non-draft patch set is pushed to a draft change, the change should get published. For this the change status must be changed from DRAFT to NEW. This was not done when NoteDb was enabled. Change-Id: I025b89873082777ecbab6936d05064f8cacaeef2 Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
@@ -269,6 +269,19 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
||||
r.assertChange(Change.Status.DRAFT, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void publishDraftChangeByPushingNonDraftPatchSet() throws Exception {
|
||||
// create draft change
|
||||
PushOneCommit.Result r = pushTo("refs/drafts/master");
|
||||
r.assertOkStatus();
|
||||
r.assertChange(Change.Status.DRAFT, null);
|
||||
|
||||
// publish draft change by pushing non-draft patch set
|
||||
r = amendChange(r.getChangeId(), "refs/for/master");
|
||||
r.assertOkStatus();
|
||||
r.assertChange(Change.Status.NEW, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pushForMasterAsEdit() throws Exception {
|
||||
PushOneCommit.Result r = pushTo("refs/for/master");
|
||||
|
@@ -240,6 +240,9 @@ public class ReplaceOp extends BatchUpdate.Op {
|
||||
}
|
||||
|
||||
boolean draft = magicBranch != null && magicBranch.draft;
|
||||
if (change.getStatus() == Change.Status.DRAFT && !draft) {
|
||||
update.setStatus(Change.Status.NEW);
|
||||
}
|
||||
newPatchSet = psUtil.insert(
|
||||
ctx.getDb(), ctx.getRevWalk(), update, patchSetId, commit, draft, groups,
|
||||
pushCertificate != null
|
||||
|
Reference in New Issue
Block a user