Merge branch 'stable-2.15' into stable-2.16
* stable-2.15: AbstractPushForReview: Test pushing a WIP change directly MergedByPushOp: Unset WIP when change is merged by push Close changes oldest-change-first when merging on push Schema_154: Fix MutableConstantField warning Change-Id: I6491179d22632d1b1fafee7a86901f887eea46db
This commit is contained in:
@@ -136,6 +136,10 @@ public class MergedByPushOp implements BatchUpdateOp {
|
||||
// submitted, this is why we must fix the status
|
||||
update.fixStatus(Change.Status.MERGED);
|
||||
update.setCurrentPatchSet();
|
||||
if (change.isWorkInProgress()) {
|
||||
change.setWorkInProgress(false);
|
||||
update.setWorkInProgress(false);
|
||||
}
|
||||
StringBuilder msgBuf = new StringBuilder();
|
||||
msgBuf.append("Change has been successfully pushed");
|
||||
if (!refName.equals(change.getDest().get())) {
|
||||
|
@@ -757,36 +757,44 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
||||
assertUploadTag(r.getChange(), ChangeMessagesUtil.TAG_UPLOADED_WIP_PATCH_SET);
|
||||
|
||||
// Pushing a new patch set without --wip doesn't remove the wip flag from the change.
|
||||
r = amendChange(r.getChangeId(), "refs/for/master");
|
||||
String changeId = r.getChangeId();
|
||||
r = amendChange(changeId, "refs/for/master");
|
||||
r.assertOkStatus();
|
||||
r.assertMessage(" [WIP]");
|
||||
assertThat(r.getChange().change().isWorkInProgress()).isTrue();
|
||||
assertUploadTag(r.getChange(), ChangeMessagesUtil.TAG_UPLOADED_WIP_PATCH_SET);
|
||||
|
||||
// Remove the wip flag from the change.
|
||||
r = amendChange(r.getChangeId(), "refs/for/master%ready");
|
||||
r = amendChange(changeId, "refs/for/master%ready");
|
||||
r.assertOkStatus();
|
||||
r.assertNotMessage(" [WIP]");
|
||||
assertThat(r.getChange().change().isWorkInProgress()).isFalse();
|
||||
assertUploadTag(r.getChange(), ChangeMessagesUtil.TAG_UPLOADED_PATCH_SET);
|
||||
|
||||
// Normal push: wip flag is not added back.
|
||||
r = amendChange(r.getChangeId(), "refs/for/master");
|
||||
r = amendChange(changeId, "refs/for/master");
|
||||
r.assertOkStatus();
|
||||
r.assertNotMessage(" [WIP]");
|
||||
assertThat(r.getChange().change().isWorkInProgress()).isFalse();
|
||||
assertUploadTag(r.getChange(), ChangeMessagesUtil.TAG_UPLOADED_PATCH_SET);
|
||||
|
||||
// Make the change work-in-progress again.
|
||||
r = amendChange(r.getChangeId(), "refs/for/master%wip");
|
||||
r = amendChange(changeId, "refs/for/master%wip");
|
||||
r.assertOkStatus();
|
||||
r.assertMessage(" [WIP]");
|
||||
assertThat(r.getChange().change().isWorkInProgress()).isTrue();
|
||||
assertUploadTag(r.getChange(), ChangeMessagesUtil.TAG_UPLOADED_WIP_PATCH_SET);
|
||||
|
||||
// Can't use --wip and --ready together.
|
||||
r = amendChange(r.getChangeId(), "refs/for/master%wip,ready");
|
||||
r = amendChange(changeId, "refs/for/master%wip,ready");
|
||||
r.assertErrorStatus();
|
||||
|
||||
// Pushing directly to the branch removes the work-in-progress flag
|
||||
String master = "refs/heads/master";
|
||||
assertPushOk(pushHead(testRepo, master, false), master);
|
||||
ChangeInfo result = Iterables.getOnlyElement(gApi.changes().query(changeId).get());
|
||||
assertThat(result.status).isEqualTo(ChangeStatus.MERGED);
|
||||
assertThat(result.workInProgress).isNull();
|
||||
}
|
||||
|
||||
private void assertUploadTag(ChangeData cd, String expectedTag) throws Exception {
|
||||
|
Reference in New Issue
Block a user