Add revertOf to ChangeInfo and populate it when /revert is called
Change-Id: I10c16c667e4bbb61d35a6c7b6be917fc595ab3ec
This commit is contained in:
		@@ -5729,6 +5729,8 @@ When present, change is marked as private.
 | 
			
		||||
When present, change is marked as Work In Progress.
 | 
			
		||||
|`has_review_started` |optional, not set if `false`|
 | 
			
		||||
When present, change has been marked Ready at some point in time.
 | 
			
		||||
|`revert_of`          |optional|
 | 
			
		||||
The numeric Change-Id of the change that this change reverts.
 | 
			
		||||
|==================================
 | 
			
		||||
 | 
			
		||||
[[change-input]]
 | 
			
		||||
 
 | 
			
		||||
@@ -617,6 +617,7 @@ public class ChangeIT extends AbstractDaemonTest {
 | 
			
		||||
 | 
			
		||||
    assertThat(revertChange.messages).hasSize(1);
 | 
			
		||||
    assertThat(revertChange.messages.iterator().next().message).isEqualTo("Uploaded patch set 1.");
 | 
			
		||||
    assertThat(revertChange.revertOf).isEqualTo(gApi.changes().id(r.getChangeId()).get()._number);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,7 @@ public class ChangeInfo {
 | 
			
		||||
  public Boolean isPrivate;
 | 
			
		||||
  public Boolean workInProgress;
 | 
			
		||||
  public Boolean hasReviewStarted;
 | 
			
		||||
  public Integer revertOf;
 | 
			
		||||
 | 
			
		||||
  public int _number;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -129,6 +129,7 @@ public class ChangeInserter implements InsertChangeOp {
 | 
			
		||||
  private boolean fireRevisionCreated;
 | 
			
		||||
  private boolean sendMail;
 | 
			
		||||
  private boolean updateRef;
 | 
			
		||||
  private Change.Id revertOf;
 | 
			
		||||
 | 
			
		||||
  // Fields set during the insertion process.
 | 
			
		||||
  private ReceiveCommand cmd;
 | 
			
		||||
@@ -198,6 +199,7 @@ public class ChangeInserter implements InsertChangeOp {
 | 
			
		||||
    change.setPrivate(isPrivate);
 | 
			
		||||
    change.setWorkInProgress(workInProgress);
 | 
			
		||||
    change.setReviewStarted(!workInProgress);
 | 
			
		||||
    change.setRevertOf(revertOf);
 | 
			
		||||
    return change;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -319,6 +321,11 @@ public class ChangeInserter implements InsertChangeOp {
 | 
			
		||||
    return this;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public ChangeInserter setRevertOf(Change.Id revertOf) {
 | 
			
		||||
    this.revertOf = revertOf;
 | 
			
		||||
    return this;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public void setPushCertificate(String cert) {
 | 
			
		||||
    pushCert = cert;
 | 
			
		||||
  }
 | 
			
		||||
@@ -390,6 +397,9 @@ public class ChangeInserter implements InsertChangeOp {
 | 
			
		||||
    update.setPsDescription(patchSetDescription);
 | 
			
		||||
    update.setPrivate(isPrivate);
 | 
			
		||||
    update.setWorkInProgress(workInProgress);
 | 
			
		||||
    if (revertOf != null) {
 | 
			
		||||
      update.setRevertOf(revertOf.get());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    boolean draft = status == Change.Status.DRAFT;
 | 
			
		||||
    List<String> newGroups = groups;
 | 
			
		||||
 
 | 
			
		||||
@@ -542,6 +542,7 @@ public class ChangeJson {
 | 
			
		||||
    out.submitted = getSubmittedOn(cd);
 | 
			
		||||
    out.plugins =
 | 
			
		||||
        pluginDefinedAttributesFactory != null ? pluginDefinedAttributesFactory.create(cd) : null;
 | 
			
		||||
    out.revertOf = cd.change().getRevertOf() != null ? cd.change().getRevertOf().get() : null;
 | 
			
		||||
 | 
			
		||||
    if (out.labels != null && has(DETAILED_LABELS)) {
 | 
			
		||||
      // If limited to specific patch sets but not the current patch set, don't
 | 
			
		||||
 
 | 
			
		||||
@@ -218,6 +218,7 @@ public class Revert extends RetryingRestModifyView<ChangeResource, RevertInput,
 | 
			
		||||
      Set<Account.Id> ccs = new HashSet<>(reviewerSet.byState(ReviewerStateInternal.CC));
 | 
			
		||||
      ccs.remove(user.getAccountId());
 | 
			
		||||
      ins.setExtraCC(ccs);
 | 
			
		||||
      ins.setRevertOf(changeIdToRevert);
 | 
			
		||||
 | 
			
		||||
      try (BatchUpdate bu = updateFactory.create(db.get(), project, user, now)) {
 | 
			
		||||
        bu.setRepository(git, revWalk, oi);
 | 
			
		||||
 
 | 
			
		||||
@@ -618,6 +618,9 @@ public class ChangeRebuilderImpl extends ChangeRebuilder {
 | 
			
		||||
    update.setChangeId(change.getKey().get());
 | 
			
		||||
    update.setBranch(change.getDest().get());
 | 
			
		||||
    update.setSubject(change.getOriginalSubject());
 | 
			
		||||
    if (change.getRevertOf() != null) {
 | 
			
		||||
      update.setRevertOf(change.getRevertOf().get());
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user