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); |     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 |   @Test | ||||||
|   public void pushForMasterAsEdit() throws Exception { |   public void pushForMasterAsEdit() throws Exception { | ||||||
|     PushOneCommit.Result r = pushTo("refs/for/master"); |     PushOneCommit.Result r = pushTo("refs/for/master"); | ||||||
|   | |||||||
| @@ -240,6 +240,9 @@ public class ReplaceOp extends BatchUpdate.Op { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     boolean draft = magicBranch != null && magicBranch.draft; |     boolean draft = magicBranch != null && magicBranch.draft; | ||||||
|  |     if (change.getStatus() == Change.Status.DRAFT && !draft) { | ||||||
|  |       update.setStatus(Change.Status.NEW); | ||||||
|  |     } | ||||||
|     newPatchSet = psUtil.insert( |     newPatchSet = psUtil.insert( | ||||||
|         ctx.getDb(), ctx.getRevWalk(), update, patchSetId, commit, draft, groups, |         ctx.getDb(), ctx.getRevWalk(), update, patchSetId, commit, draft, groups, | ||||||
|         pushCertificate != null |         pushCertificate != null | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Edwin Kempin
					Edwin Kempin