Inline AbstractDaemonTest#getRemoteHead

The ProjectOperations API is designed to be readable. It's slightly more
verbose, but looking at the actual call sites, we can live with it.

Change-Id: Iccd122f261f3667d481e70e180215e634d5dfa2a
This commit is contained in:
Dave Borowitz
2019-05-13 11:38:42 +02:00
parent e15c1a6a39
commit edb599b65e
29 changed files with 197 additions and 193 deletions

View File

@@ -959,15 +959,6 @@ public abstract class AbstractDaemonTest {
}
}
// TODO(hanwen): push this down.
protected RevCommit getRemoteHead(Project.NameKey project, String branch) throws Exception {
return projectOperations.project(project).getHead(branch);
}
protected RevCommit getRemoteHead() throws Exception {
return getRemoteHead(project, "master");
}
protected void assertMailReplyTo(Message message, String email) throws Exception {
assertThat(message.headers()).containsKey("Reply-To");
EmailHeader.String replyTo = (EmailHeader.String) message.headers().get("Reply-To");

View File

@@ -422,8 +422,10 @@ public class AccountIT extends AbstractDaemonTest {
List<EmailInfo> emails = gApi.accounts().id(accountId.get()).getEmails();
assertThat(emails.stream().map(e -> e.email).collect(toSet())).containsExactly(extId.email());
RevCommit commitUserBranch = getRemoteHead(allUsers, RefNames.refsUsers(accountId));
RevCommit commitRefsMetaExternalIds = getRemoteHead(allUsers, RefNames.REFS_EXTERNAL_IDS);
RevCommit commitUserBranch =
projectOperations.project(allUsers).getHead(RefNames.refsUsers(accountId));
RevCommit commitRefsMetaExternalIds =
projectOperations.project(allUsers).getHead(RefNames.REFS_EXTERNAL_IDS);
assertThat(commitUserBranch.getCommitTime())
.isEqualTo(commitRefsMetaExternalIds.getCommitTime());
} finally {

View File

@@ -3182,7 +3182,7 @@ public class ChangeIT extends AbstractDaemonTest {
@Test
public void createMergePatchSetCannotBaseOnInvisibleChange() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
createBranch("foo");
createBranch("bar");
@@ -3211,7 +3211,7 @@ public class ChangeIT extends AbstractDaemonTest {
@Test
public void createMergePatchSetBaseOnChange() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
createBranch("foo");
createBranch("bar");
@@ -3379,7 +3379,7 @@ public class ChangeIT extends AbstractDaemonTest {
@Test
public void checkLabelsForMergedChangeWithNonAuthorCodeReview() throws Exception {
// Configure Non-Author-Code-Review
RevCommit oldHead = getRemoteHead();
RevCommit oldHead = projectOperations.project(project).getHead("master");
GitUtil.fetch(testRepo, RefNames.REFS_CONFIG + ":config");
testRepo.reset("config");
PushOneCommit push2 =
@@ -3574,7 +3574,7 @@ public class ChangeIT extends AbstractDaemonTest {
+ "U > 0,"
+ "R = label('All-Comments-Resolved', need(_)). \n\n");
String oldHead = getRemoteHead().name();
String oldHead = projectOperations.project(project).getHead("master").name();
PushOneCommit.Result result1 =
pushFactory.create(user.newIdent(), testRepo).to("refs/for/master");
testRepo.reset(oldHead);
@@ -3830,7 +3830,8 @@ public class ChangeIT extends AbstractDaemonTest {
assertThat(
gApi.changes()
.id(revertId)
.pureRevert(getRemoteHead().toObjectId().name())
.pureRevert(
projectOperations.project(project).getHead("master").toObjectId().name())
.isPureRevert)
.isTrue();
}
@@ -3853,7 +3854,7 @@ public class ChangeIT extends AbstractDaemonTest {
public void pureRevertParameterTakesPrecedence() throws Exception {
PushOneCommit.Result r1 = createChange("commit message", "a.txt", "content1");
merge(r1);
String oldHead = getRemoteHead().toObjectId().name();
String oldHead = projectOperations.project(project).getHead("master").toObjectId().name();
PushOneCommit.Result r2 = createChange("commit message", "a.txt", "content2");
merge(r2);
@@ -3896,7 +3897,8 @@ public class ChangeIT extends AbstractDaemonTest {
// Create an initial commit to serve as claimed original
PushOneCommit.Result r1 = createChange("commit message", "a.txt", "content1");
merge(r1);
String claimedOriginal = getRemoteHead().toObjectId().name();
String claimedOriginal =
projectOperations.project(project).getHead("master").toObjectId().name();
// Change contents of the file to provoke a conflict
merge(createChange("commit message", "a.txt", "content2"));

View File

@@ -63,7 +63,7 @@ public class DisablePrivateChangesIT extends AbstractDaemonTest {
@GerritConfig(name = "change.allowDrafts", value = "true")
@GerritConfig(name = "change.disablePrivateChanges", value = "true")
public void pushDraftsWithDisablePrivateChangesTrue() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result result =
pushFactory.create(admin.newIdent(), testRepo).to("refs/for/master%draft");
result.assertErrorStatus();
@@ -93,7 +93,7 @@ public class DisablePrivateChangesIT extends AbstractDaemonTest {
@Test
@GerritConfig(name = "change.allowDrafts", value = "true")
public void pushDraftsWithDisablePrivateChangesFalse() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result result =
pushFactory.create(admin.newIdent(), testRepo).to("refs/for/master%draft");
assertThat(result.getChange().change().isPrivate()).isTrue();

View File

@@ -120,7 +120,7 @@ public class StickyApprovalsIT extends AbstractDaemonTest {
for (ChangeKind changeKind :
EnumSet.of(REWORK, TRIVIAL_REBASE, NO_CODE_CHANGE, MERGE_FIRST_PARENT_UPDATE, NO_CHANGE)) {
testRepo.reset(getRemoteHead());
testRepo.reset(projectOperations.project(project).getHead("master"));
String changeId = createChange(changeKind);
vote(admin, changeId, -1, 1);
@@ -142,7 +142,7 @@ public class StickyApprovalsIT extends AbstractDaemonTest {
for (ChangeKind changeKind :
EnumSet.of(REWORK, TRIVIAL_REBASE, NO_CODE_CHANGE, MERGE_FIRST_PARENT_UPDATE, NO_CHANGE)) {
testRepo.reset(getRemoteHead());
testRepo.reset(projectOperations.project(project).getHead("master"));
String changeId = createChange(changeKind);
vote(admin, changeId, 2, 1);
@@ -179,7 +179,7 @@ public class StickyApprovalsIT extends AbstractDaemonTest {
assertNotSticky(EnumSet.of(REWORK, NO_CODE_CHANGE, MERGE_FIRST_PARENT_UPDATE));
// check that votes are sticky when trivial rebase is done by cherry-pick
testRepo.reset(getRemoteHead());
testRepo.reset(projectOperations.project(project).getHead("master"));
changeId = createChange().getChangeId();
vote(admin, changeId, 2, 1);
vote(user, changeId, -2, -1);
@@ -190,7 +190,7 @@ public class StickyApprovalsIT extends AbstractDaemonTest {
assertVotes(c, user, -2, 0);
// check that votes are not sticky when rework is done by cherry-pick
testRepo.reset(getRemoteHead());
testRepo.reset(projectOperations.project(project).getHead("master"));
changeId = createChange().getChangeId();
vote(admin, changeId, 2, 1);
vote(user, changeId, -2, -1);
@@ -262,7 +262,7 @@ public class StickyApprovalsIT extends AbstractDaemonTest {
for (ChangeKind changeKind :
EnumSet.of(REWORK, TRIVIAL_REBASE, NO_CODE_CHANGE, MERGE_FIRST_PARENT_UPDATE, NO_CHANGE)) {
testRepo.reset(getRemoteHead());
testRepo.reset(projectOperations.project(project).getHead("master"));
String changeId = createChange(changeKind);
vote(admin, changeId, 2, 1);
@@ -370,7 +370,7 @@ public class StickyApprovalsIT extends AbstractDaemonTest {
private void assertNotSticky(Set<ChangeKind> changeKinds) throws Exception {
for (ChangeKind changeKind : changeKinds) {
testRepo.reset(getRemoteHead());
testRepo.reset(projectOperations.project(project).getHead("master"));
String changeId = createChange(changeKind);
vote(admin, changeId, +2, 1);
@@ -461,7 +461,7 @@ public class StickyApprovalsIT extends AbstractDaemonTest {
private void trivialRebase(String changeId) throws Exception {
requestScopeOperations.setApiUser(admin.id());
testRepo.reset(getRemoteHead());
testRepo.reset(projectOperations.project(project).getHead("master"));
PushOneCommit push =
pushFactory.create(
admin.newIdent(),
@@ -527,7 +527,7 @@ public class StickyApprovalsIT extends AbstractDaemonTest {
assert_().fail("unexpected change kind: " + changeKind);
}
testRepo.reset(getRemoteHead());
testRepo.reset(projectOperations.project(project).getHead("master"));
PushOneCommit.Result r =
pushFactory
.create(

View File

@@ -262,14 +262,14 @@ public class ProjectIT extends AbstractDaemonTest {
@Test
public void descriptionChangeCausesRefUpdate() throws Exception {
RevCommit initialHead = getRemoteHead(project, RefNames.REFS_CONFIG);
RevCommit initialHead = projectOperations.project(project).getHead(RefNames.REFS_CONFIG);
assertThat(gApi.projects().name(project.get()).description()).isEmpty();
DescriptionInput in = new DescriptionInput();
in.description = "new project description";
gApi.projects().name(project.get()).description(in);
assertThat(gApi.projects().name(project.get()).description()).isEqualTo(in.description);
RevCommit updatedHead = getRemoteHead(project, RefNames.REFS_CONFIG);
RevCommit updatedHead = projectOperations.project(project).getHead(RefNames.REFS_CONFIG);
eventRecorder.assertRefUpdatedEvents(
project.get(), RefNames.REFS_CONFIG, initialHead, updatedHead);
}
@@ -288,7 +288,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test
public void configChangeCausesRefUpdate() throws Exception {
RevCommit initialHead = getRemoteHead(project, RefNames.REFS_CONFIG);
RevCommit initialHead = projectOperations.project(project).getHead(RefNames.REFS_CONFIG);
ConfigInfo info = gApi.projects().name(project.get()).config();
assertThat(info.defaultSubmitType.value).isEqualTo(SubmitType.MERGE_IF_NECESSARY);
@@ -299,7 +299,7 @@ public class ProjectIT extends AbstractDaemonTest {
info = gApi.projects().name(project.get()).config();
assertThat(info.defaultSubmitType.value).isEqualTo(SubmitType.CHERRY_PICK);
RevCommit updatedHead = getRemoteHead(project, RefNames.REFS_CONFIG);
RevCommit updatedHead = projectOperations.project(project).getHead(RefNames.REFS_CONFIG);
eventRecorder.assertRefUpdatedEvents(
project.get(), RefNames.REFS_CONFIG, initialHead, updatedHead);
}
@@ -741,7 +741,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Nullable
protected RevCommit getRemoteHead(String project, String branch) throws Exception {
return getRemoteHead(Project.nameKey(project), branch);
return projectOperations.project(Project.nameKey(project)).getHead(branch);
}
boolean hasHead(Project.NameKey k, String b) {

View File

@@ -563,7 +563,7 @@ public class RevisionIT extends AbstractDaemonTest {
ByteArrayOutputStream os = new ByteArrayOutputStream();
bin.writeTo(os);
String fileContent = new String(os.toByteArray(), UTF_8);
String destSha1 = abbreviateName(getRemoteHead(project, destBranch), 6);
String destSha1 = abbreviateName(projectOperations.project(project).getHead(destBranch), 6);
String changeSha1 = abbreviateName(r.getCommit(), 6);
assertThat(fileContent)
.isEqualTo(

View File

@@ -204,7 +204,7 @@ public class SubmitOnPushIT extends AbstractDaemonTest {
.add(allow(Permission.CREATE).ref(other).group(adminGroupUuid()))
.add(allow(Permission.PUSH).ref(other).group(adminGroupUuid()))
.update();
RevCommit masterRev = getRemoteHead();
RevCommit masterRev = projectOperations.project(project).getHead("master");
pushCommitTo(masterRev, other);
PushOneCommit.Result r = createChange();
r.assertOkStatus();
@@ -314,7 +314,7 @@ public class SubmitOnPushIT extends AbstractDaemonTest {
.update();
// Create 2 changes.
ObjectId initialHead = getRemoteHead();
ObjectId initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result r1 = createChange("Change 1", "a", "a");
r1.assertOkStatus();
PushOneCommit.Result r2 = createChange("Change 2", "b", "b");

View File

@@ -401,7 +401,7 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
gApi.changes().id(subChangeId).current().submit();
expectToHaveSubmoduleState(superRepo, "master", subKey, subRepo, "master");
RevCommit superHead = getRemoteHead(superKey, "master");
RevCommit superHead = projectOperations.project(superKey).getHead("master");
assertThat(superHead.getShortMessage()).contains("some message");
assertThat(superHead.getId()).isNotEqualTo(superId);
}
@@ -435,7 +435,7 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
gApi.changes().id(subChangeId).current().submit();
RevCommit superHead = getRemoteHead(superKey, "master");
RevCommit superHead = projectOperations.project(superKey).getHead("master");
assertThat(superHead.getShortMessage()).isEqualTo("some message");
assertThat(superHead.getId()).isEqualTo(superId);
}
@@ -751,13 +751,13 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
approve(getChangeId(repoB, bDevHead).get());
gApi.changes().id(getChangeId(repoA, aDevHead).get()).current().submit();
assertThat(getRemoteHead(keyA, "refs/heads/master").getShortMessage())
assertThat(projectOperations.project(keyA).getHead("refs/heads/master").getShortMessage())
.contains("some message in a master.txt");
assertThat(getRemoteHead(keyA, "refs/heads/dev").getShortMessage())
assertThat(projectOperations.project(keyA).getHead("refs/heads/dev").getShortMessage())
.contains("some message in a dev.txt");
assertThat(getRemoteHead(keyB, "refs/heads/master").getShortMessage())
assertThat(projectOperations.project(keyB).getHead("refs/heads/master").getShortMessage())
.contains("some message in b master.txt");
assertThat(getRemoteHead(keyB, "refs/heads/dev").getShortMessage())
assertThat(projectOperations.project(keyB).getHead("refs/heads/dev").getShortMessage())
.contains("some message in b dev.txt");
}
@@ -850,13 +850,13 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
sub1.git().fetch().call();
RevWalk rw1 = sub1.getRevWalk();
RevCommit master1 = rw1.parseCommit(getRemoteHead(subKey1, "master"));
RevCommit master1 = rw1.parseCommit(projectOperations.project(subKey1).getHead("master"));
RevCommit change1Ps = parseCurrentRevision(rw1, changeId1);
assertThat(rw1.isMergedInto(change1Ps, master1)).isTrue();
sub2.git().fetch().call();
RevWalk rw2 = sub2.getRevWalk();
RevCommit master2 = rw2.parseCommit(getRemoteHead(subKey2, "master"));
RevCommit master2 = rw2.parseCommit(projectOperations.project(subKey2).getHead("master"));
RevCommit change2Ps = parseCurrentRevision(rw2, changeId2);
assertThat(rw2.isMergedInto(change2Ps, master2)).isTrue();

View File

@@ -217,7 +217,7 @@ public class ProjectsRestApiBindingsIT extends AbstractDaemonTest {
testRepo
.commit()
.message("A change")
.parent(getRemoteHead())
.parent(projectOperations.project(project).getHead("master"))
.add(filename, "content")
.insertChangeId()
.create();

View File

@@ -164,16 +164,17 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
assertThat(actual).hasSize(1);
submit(change.getChangeId());
assertThat(getRemoteHead().getId()).isEqualTo(change.getCommit());
assertThat(projectOperations.project(project).getHead("master").getId())
.isEqualTo(change.getCommit());
assertTrees(project, actual);
}
@Test
public void submitSingleChange() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
Map<BranchNameKey, ObjectId> actual = fetchFromSubmitPreview(change.getChangeId());
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterSubmit).isEqualTo(initialHead);
assertRefUpdatedEvents();
assertChangeMergedEvents();
@@ -192,12 +193,12 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
@Test
public void submitMultipleChangesOtherMergeConflictPreview() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "other content");
PushOneCommit.Result change3 = createChange("Change 3", "d", "d");
@@ -267,7 +268,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
break;
}
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterSubmit).isEqualTo(headAfterFirstSubmit);
assertRefUpdatedEvents(initialHead, headAfterFirstSubmit);
assertChangeMergedEvents(change.getChangeId(), headAfterFirstSubmit.name());
@@ -276,7 +277,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
@Test
public void submitMultipleChangesPreview() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "other content");
PushOneCommit.Result change3 = createChange("Change 3", "d", "d");
PushOneCommit.Result change4 = createChange("Change 4", "e", "e");
@@ -301,7 +302,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
}
// check that the submit preview did not actually submit
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterSubmit).isEqualTo(initialHead);
assertRefUpdatedEvents();
assertChangeMergedEvents();
@@ -428,7 +429,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
Project.NameKey keyA = createProjectForPush(getSubmitType());
TestRepository<?> repoA = cloneProject(keyA);
RevCommit initialHead = getRemoteHead(keyA, "master");
RevCommit initialHead = projectOperations.project(keyA).getHead("master");
// Create the dev branch on the test project
BranchInput in = new BranchInput();
@@ -621,7 +622,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
// | /
// I -- master
//
RevCommit master = getRemoteHead(project, "master");
RevCommit master = projectOperations.project(project).getHead("master");
PushOneCommit stableTip =
pushFactory.create(admin.newIdent(), testRepo, "Tip of branch stable", "stable.txt", "");
PushOneCommit.Result stable = stableTip.to("refs/heads/stable");
@@ -649,7 +650,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
// | /
// I -- master
//
RevCommit initial = getRemoteHead(project, "master");
RevCommit initial = projectOperations.project(project).getHead("master");
// push directly to stable to S1
PushOneCommit.Result s1 =
pushFactory
@@ -686,7 +687,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
// create and submit a change
PushOneCommit.Result change = createChange();
submit(change.getChangeId());
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
// set the status of the change back to NEW to simulate a failed submit that
// merged the commit but failed to update the change status
@@ -695,7 +696,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
// submitting the change again should detect that the commit was already
// merged and just fix the change status to be MERGED
submit(change.getChangeId());
assertThat(getRemoteHead()).isEqualTo(headAfterSubmit);
assertThat(projectOperations.project(project).getHead("master")).isEqualTo(headAfterSubmit);
}
@Test
@@ -709,7 +710,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
}
submit(change2.getChangeId());
assertMerged(change1.getChangeId());
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
// set the status of the changes back to NEW to simulate a failed submit that
// merged the commits but failed to update the change status
@@ -719,7 +720,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
// merged and just fix the change status to be MERGED
submit(change1.getChangeId());
submit(change2.getChangeId());
assertThat(getRemoteHead()).isEqualTo(headAfterSubmit);
assertThat(projectOperations.project(project).getHead("master")).isEqualTo(headAfterSubmit);
}
@Test
@@ -733,7 +734,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
approve(change1.getChangeId());
submit(change2.getChangeId());
assertMerged(change1.getChangeId());
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
// set the status of the second change back to NEW to simulate a failed
// submit that merged the commits but failed to update the change status of
@@ -743,7 +744,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
// submitting the topic again should detect that the commits were already
// merged and just fix the change status to be MERGED
submit(change2.getChangeId());
assertThat(getRemoteHead()).isEqualTo(headAfterSubmit);
assertThat(projectOperations.project(project).getHead("master")).isEqualTo(headAfterSubmit);
}
@Test
@@ -835,7 +836,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
public void submitWithCommitAndItsMergeCommitTogether() throws Throwable {
assume().that(isSubmitWholeTopicEnabled()).isTrue();
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
// Create a stable branch and bootstrap it.
gApi.projects().name(project.get()).branch("stable").create(new BranchInput());
@@ -843,8 +844,8 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
pushFactory.create(user.newIdent(), testRepo, "initial commit", "a.txt", "a");
PushOneCommit.Result change = push.to("refs/heads/stable");
RevCommit stable = getRemoteHead(project, "stable");
RevCommit master = getRemoteHead(project, "master");
RevCommit stable = projectOperations.project(project).getHead("stable");
RevCommit master = projectOperations.project(project).getHead("master");
assertThat(master).isEqualTo(initialHead);
assertThat(stable).isEqualTo(change.getCommit());
@@ -897,7 +898,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
assertMerged(mergeId);
testRepo.git().fetch().call();
RevWalk rw = testRepo.getRevWalk();
master = rw.parseCommit(getRemoteHead(project, "master"));
master = rw.parseCommit(projectOperations.project(project).getHead("master"));
assertThat(rw.isMergedInto(merge, master)).isTrue();
assertThat(rw.isMergedInto(fix, master)).isTrue();
}
@@ -920,7 +921,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
testRepo.git().fetch().call();
RevWalk rw = testRepo.getRevWalk();
RevCommit master = rw.parseCommit(getRemoteHead(project, "master"));
RevCommit master = rw.parseCommit(projectOperations.project(project).getHead("master"));
RevCommit patchSet = parseCurrentRevision(rw, change.getChangeId());
assertThat(rw.isMergedInto(patchSet, master)).isTrue();
@@ -963,13 +964,13 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
repoA.git().fetch().call();
RevWalk rwA = repoA.getRevWalk();
RevCommit masterA = rwA.parseCommit(getRemoteHead(keyA, "master"));
RevCommit masterA = rwA.parseCommit(projectOperations.project(keyA).getHead("master"));
RevCommit change1Ps = parseCurrentRevision(rwA, change1.getChangeId());
assertThat(rwA.isMergedInto(change1Ps, masterA)).isTrue();
repoB.git().fetch().call();
RevWalk rwB = repoB.getRevWalk();
RevCommit masterB = rwB.parseCommit(getRemoteHead(keyB, "master"));
RevCommit masterB = rwB.parseCommit(projectOperations.project(keyB).getHead("master"));
RevCommit change2Ps = parseCurrentRevision(rwB, change2.getChangeId());
assertThat(rwB.isMergedInto(change2Ps, masterB)).isTrue();
@@ -984,7 +985,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
ci.matchAuthorToCommitterDate = InheritableBoolean.TRUE;
gApi.projects().name(project.get()).config(ci);
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change = createChange("Change 1", "b", "b");
@@ -998,7 +999,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
}
submit(change2.getChangeId());
assertAuthorAndCommitDateEquals(getRemoteHead());
assertAuthorAndCommitDateEquals(projectOperations.project(project).getHead("master"));
}
@Test
@@ -1088,7 +1089,8 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
assertThat(actual).hasSize(1);
submit(change.getChangeId());
assertThat(getRemoteHead().getId()).isEqualTo(change.getCommit());
assertThat(projectOperations.project(project).getHead("master").getId())
.isEqualTo(change.getCommit());
assertTrees(project, actual);
}
@@ -1108,7 +1110,8 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
assertThat(actual).hasSize(1);
submit(change.getChangeId());
assertThat(getRemoteHead().getId()).isEqualTo(change.getCommit());
assertThat(projectOperations.project(project).getHead("master").getId())
.isEqualTo(change.getCommit());
assertTrees(project, actual);
}
@@ -1278,7 +1281,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
protected void assertCherryPick(TestRepository<?> testRepo, boolean contentMerge)
throws Throwable {
assertRebase(testRepo, contentMerge);
RevCommit remoteHead = getRemoteHead();
RevCommit remoteHead = projectOperations.project(project).getHead("master");
assertThat(remoteHead.getFooterLines("Reviewed-On")).isNotEmpty();
assertThat(remoteHead.getFooterLines("Reviewed-By")).isNotEmpty();
}
@@ -1286,7 +1289,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
protected void assertRebase(TestRepository<?> testRepo, boolean contentMerge) throws Throwable {
Repository repo = testRepo.getRepository();
RevCommit localHead = getHead(repo, "HEAD");
RevCommit remoteHead = getRemoteHead();
RevCommit remoteHead = projectOperations.project(project).getHead("master");
assertThat(localHead.getId()).isNotEqualTo(remoteHead.getId());
assertThat(remoteHead.getParentCount()).isEqualTo(1);
if (!contentMerge) {

View File

@@ -27,15 +27,15 @@ public abstract class AbstractSubmitByMerge extends AbstractSubmit {
@Test
public void submitWithMerge() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit oldHead = getRemoteHead();
RevCommit oldHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change2 = createChange("Change 2", "b.txt", "other content");
submit(change2.getChangeId());
RevCommit head = getRemoteHead();
RevCommit head = projectOperations.project(project).getHead("master");
assertThat(head.getParentCount()).isEqualTo(2);
assertThat(head.getParent(0)).isEqualTo(oldHead);
assertThat(head.getParent(1)).isEqualTo(change2.getCommit());
@@ -49,11 +49,11 @@ public abstract class AbstractSubmitByMerge extends AbstractSubmit {
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "aaa\nbbb\nccc\nddd\n");
submit(change2.getChangeId());
RevCommit oldHead = getRemoteHead();
RevCommit oldHead = projectOperations.project(project).getHead("master");
testRepo.reset(change.getCommit());
PushOneCommit.Result change3 = createChange("Change 3", "a.txt", "bbb\nccc\n");
submit(change3.getChangeId());
RevCommit head = getRemoteHead();
RevCommit head = projectOperations.project(project).getHead("master");
assertThat(head.getParentCount()).isEqualTo(2);
assertThat(head.getParent(0)).isEqualTo(oldHead);
assertThat(head.getParent(1)).isEqualTo(change3.getCommit());
@@ -62,11 +62,11 @@ public abstract class AbstractSubmitByMerge extends AbstractSubmit {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitWithContentMerge_Conflict() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit oldHead = getRemoteHead();
RevCommit oldHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "other content");
submitWithConflict(
@@ -78,7 +78,7 @@ public abstract class AbstractSubmitByMerge extends AbstractSubmit {
+ "Change could not be merged due to a path conflict. "
+ "Please rebase the change locally "
+ "and upload the rebased commit for review.");
assertThat(getRemoteHead()).isEqualTo(oldHead);
assertThat(projectOperations.project(project).getHead("master")).isEqualTo(oldHead);
}
@Test
@@ -88,7 +88,8 @@ public abstract class AbstractSubmitByMerge extends AbstractSubmit {
PushOneCommit.Result change2 = createChange();
approve(change1.getChangeId());
submit(change2.getChangeId());
assertThat(getRemoteHead().getId()).isEqualTo(change2.getCommit());
assertThat(projectOperations.project(project).getHead("master").getId())
.isEqualTo(change2.getCommit());
}
@Test
@@ -108,7 +109,7 @@ public abstract class AbstractSubmitByMerge extends AbstractSubmit {
approve(change1.getChangeId());
submit(change2.getChangeId());
RevCommit head = getRemoteHead();
RevCommit head = projectOperations.project(project).getHead("master");
assertThat(head.getParents()).hasLength(2);
assertThat(head.getParent(0)).isEqualTo(change1.getCommit());
assertThat(head.getParent(1)).isEqualTo(change2.getCommit());

View File

@@ -73,16 +73,16 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
protected ImmutableList<PushOneCommit.Result> submitWithRebase(TestAccount submitter)
throws Throwable {
requestScopeOperations.setApiUser(submitter.id());
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change2 = createChange("Change 2", "b.txt", "other content");
submit(change2.getChangeId());
assertRebase(testRepo, false);
RevCommit headAfterSecondSubmit = getRemoteHead();
RevCommit headAfterSecondSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterSecondSubmit.getParent(0)).isEqualTo(headAfterFirstSubmit);
assertApproved(change2.getChangeId(), submitter);
assertCurrentRevision(change2.getChangeId(), 2, headAfterSecondSubmit);
@@ -103,10 +103,10 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
@Test
public void submitWithRebaseMultipleChanges() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change1 = createChange("Change 1", "a.txt", "content");
submit(change1.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
if (getSubmitType() == SubmitType.REBASE_ALWAYS) {
assertCurrentRevision(change1.getChangeId(), 2, headAfterFirstSubmit);
} else {
@@ -127,7 +127,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
assertApproved(change3.getChangeId());
assertApproved(change4.getChangeId());
RevCommit headAfterSecondSubmit = parse(getRemoteHead());
RevCommit headAfterSecondSubmit = parse(projectOperations.project(project).getHead("master"));
assertThat(headAfterSecondSubmit.getShortMessage()).isEqualTo("Change 4");
assertThat(headAfterSecondSubmit).isNotEqualTo(change4.getCommit());
assertCurrentRevision(change4.getChangeId(), 2, headAfterSecondSubmit);
@@ -175,7 +175,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
|/
* Initial empty repository
*/
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change1 = createChange("Added a", "a.txt", "");
PushOneCommit change2Push =
@@ -193,7 +193,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
approve(change2.getChangeId());
submit(change2.getChangeId());
RevCommit newHead = getRemoteHead();
RevCommit newHead = projectOperations.project(project).getHead("master");
assertThat(newHead.getParentCount()).isEqualTo(2);
RevCommit headParent1 = parse(newHead.getParent(0).getId());
@@ -220,11 +220,11 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitWithContentMerge_Conflict() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "other content");
submitWithConflict(
@@ -232,7 +232,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
"Cannot rebase "
+ change2.getCommit().name()
+ ": The change could not be rebased due to a conflict during merge.");
RevCommit head = getRemoteHead();
RevCommit head = projectOperations.project(project).getHead("master");
assertThat(head).isEqualTo(headAfterFirstSubmit);
assertCurrentRevision(change2.getChangeId(), 1, change2.getCommit());
assertNoSubmitter(change2.getChangeId(), 1);
@@ -252,7 +252,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
@Test
public void submitAfterReorderOfCommits() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
// Create two commits and push.
RevCommit c1 = commitBuilder().add("a.txt", "1").message("subject: 1").create();
@@ -271,7 +271,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
approve(id1);
approve(id2);
submit(id1);
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
assertRefUpdatedEvents(initialHead, headAfterSubmit);
assertChangeMergedEvents(id2, headAfterSubmit.name(), id1, headAfterSubmit.name());
@@ -279,7 +279,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
@Test
public void submitChangesAfterBranchOnSecond() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
approve(change.getChangeId());
@@ -293,7 +293,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
assertMerged(change2.getChangeId());
assertMerged(change.getChangeId());
RevCommit newHead = getRemoteHead();
RevCommit newHead = projectOperations.project(this.project).getHead("master");
assertRefUpdatedEvents(initialHead, newHead);
assertChangeMergedEvents(
change.getChangeId(), newHead.name(), change2.getChangeId(), newHead.name());
@@ -302,7 +302,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitFastForwardIdenticalTree() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change1 = createChange("Change 1", "a.txt", "a");
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "a");
@@ -313,18 +313,18 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
testRepo.reset(initialHead);
PushOneCommit.Result change0 = createChange("Change 0", "b.txt", "b");
submit(change0.getChangeId());
RevCommit headAfterChange0 = getRemoteHead();
RevCommit headAfterChange0 = projectOperations.project(project).getHead("master");
assertThat(headAfterChange0.getShortMessage()).isEqualTo("Change 0");
submit(change1.getChangeId());
RevCommit headAfterChange1 = getRemoteHead();
RevCommit headAfterChange1 = projectOperations.project(project).getHead("master");
assertThat(headAfterChange1.getShortMessage()).isEqualTo("Change 1");
assertThat(headAfterChange0).isEqualTo(headAfterChange1.getParent(0));
// Do manual rebase first.
gApi.changes().id(change2.getChangeId()).current().rebase();
submit(change2.getChangeId());
RevCommit headAfterChange2 = getRemoteHead();
RevCommit headAfterChange2 = projectOperations.project(project).getHead("master");
assertThat(headAfterChange2.getShortMessage()).isEqualTo("Change 2");
assertThat(headAfterChange1).isEqualTo(headAfterChange2.getParent(0));
@@ -351,7 +351,7 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
change1 =
amendChange(change1.getChangeId(), "subject 1 amend", "fileName 2", "rework content 2");
submit(change1.getChangeId());
headAfterChange1 = getRemoteHead();
headAfterChange1 = projectOperations.project(project).getHead("master");
submitWithConflict(
change2.getChangeId(),
@@ -359,13 +359,13 @@ public abstract class AbstractSubmitByRebase extends AbstractSubmit {
+ change2.getCommit().getName()
+ ": "
+ "The change could not be rebased due to a conflict during merge.");
assertThat(getRemoteHead()).isEqualTo(headAfterChange1);
assertThat(projectOperations.project(project).getHead("master")).isEqualTo(headAfterChange1);
}
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitChainOneByOneManualRebase() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change1 = createChange("subject 1", "fileName 1", "content 1");
PushOneCommit.Result change2 = createChange("subject 2", "fileName 2", "content 2");

View File

@@ -392,7 +392,7 @@ public class CreateChangeIT extends AbstractDaemonTest {
cherry.current().review(ReviewInput.approve());
cherry.current().submit();
ObjectId remoteId = getRemoteHead();
ObjectId remoteId = projectOperations.project(project).getHead("master");
assertThat(remoteId).isNotEqualTo(commitId);
ChangeInput in = newMergeChangeInput("master", commitId.getName(), "");

View File

@@ -131,7 +131,7 @@ public class PrivateByDefaultIT extends AbstractDaemonTest {
public void pushDraftsWithPrivateByDefaultAndDisablePrivateChangesTrue() throws Exception {
setPrivateByDefault(project2, InheritableBoolean.TRUE);
RevCommit initialHead = getRemoteHead(project2, "master");
RevCommit initialHead = projectOperations.project(project2).getHead("master");
TestRepository<InMemoryRepository> testRepo = cloneProject(project2);
PushOneCommit.Result result =
pushFactory.create(admin.newIdent(), testRepo).to("refs/for/master%draft");

View File

@@ -48,11 +48,11 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
public void submitWithCherryPickIfFastForwardPossible() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
submit(change.getChangeId());
assertCherryPick(testRepo, false);
RevCommit newHead = getRemoteHead();
RevCommit newHead = projectOperations.project(project).getHead("master");
assertThat(newHead.getParent(0)).isEqualTo(change.getCommit().getParent(0));
assertRefUpdatedEvents(initialHead, newHead);
@@ -61,16 +61,16 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
public void submitWithCherryPick() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change2 = createChange("Change 2", "b.txt", "other content");
submit(change2.getChangeId());
assertCherryPick(testRepo, false);
RevCommit newHead = getRemoteHead();
RevCommit newHead = projectOperations.project(project).getHead("master");
assertThat(newHead.getParentCount()).isEqualTo(1);
assertThat(newHead.getParent(0)).isEqualTo(headAfterFirstSubmit);
assertCurrentRevision(change2.getChangeId(), 2, newHead);
@@ -108,19 +108,19 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitWithContentMerge() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "aaa\nbbb\nccc\n");
submit(change.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "aaa\nbbb\nccc\nddd\n");
submit(change2.getChangeId());
RevCommit headAfterSecondSubmit = getRemoteHead();
RevCommit headAfterSecondSubmit = projectOperations.project(project).getHead("master");
testRepo.reset(change.getCommit());
PushOneCommit.Result change3 = createChange("Change 3", "a.txt", "bbb\nccc\n");
submit(change3.getChangeId());
assertCherryPick(testRepo, true);
RevCommit headAfterThirdSubmit = getRemoteHead();
RevCommit headAfterThirdSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterThirdSubmit.getParent(0)).isEqualTo(headAfterSecondSubmit);
assertApproved(change3.getChangeId());
assertCurrentRevision(change3.getChangeId(), 2, headAfterThirdSubmit);
@@ -146,11 +146,11 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitWithContentMerge_Conflict() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit newHead = getRemoteHead();
RevCommit newHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "other content");
submitWithConflict(
@@ -162,7 +162,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
+ "merged due to a path conflict. Please rebase the change locally and "
+ "upload the rebased commit for review.");
assertThat(getRemoteHead()).isEqualTo(newHead);
assertThat(projectOperations.project(project).getHead("master")).isEqualTo(newHead);
assertCurrentRevision(change2.getChangeId(), 1, change2.getCommit());
assertNoSubmitter(change2.getChangeId(), 1);
@@ -172,17 +172,17 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
public void submitOutOfOrder() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
createChange("Change 2", "b.txt", "other content");
PushOneCommit.Result change3 = createChange("Change 3", "c.txt", "different content");
submit(change3.getChangeId());
assertCherryPick(testRepo, false);
RevCommit headAfterSecondSubmit = getRemoteHead();
RevCommit headAfterSecondSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterSecondSubmit.getParent(0)).isEqualTo(headAfterFirstSubmit);
assertApproved(change3.getChangeId());
assertCurrentRevision(change3.getChangeId(), 2, headAfterSecondSubmit);
@@ -200,11 +200,11 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
public void submitOutOfOrder_Conflict() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit newHead = getRemoteHead();
RevCommit newHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
createChange("Change 2", "b.txt", "other content");
PushOneCommit.Result change3 = createChange("Change 3", "b.txt", "different content");
@@ -217,7 +217,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
+ "merged due to a path conflict. Please rebase the change locally and "
+ "upload the rebased commit for review.");
assertThat(getRemoteHead()).isEqualTo(newHead);
assertThat(projectOperations.project(project).getHead("master")).isEqualTo(newHead);
assertCurrentRevision(change3.getChangeId(), 1, change3.getCommit());
assertNoSubmitter(change3.getChangeId(), 1);
@@ -227,7 +227,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
public void submitMultipleChanges() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change = createChange("Change 1", "b", "b");
@@ -255,7 +255,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
public void submitDependentNonConflictingChangesOutOfOrder() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change = createChange("Change 1", "b", "b");
@@ -264,11 +264,11 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
// Submit succeeds; change2 is successfully cherry-picked onto head.
submit(change2.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
// Submit succeeds; change is successfully cherry-picked onto head
// (which was change2's cherry-pick).
submit(change.getChangeId());
RevCommit headAfterSecondSubmit = getRemoteHead();
RevCommit headAfterSecondSubmit = projectOperations.project(project).getHead("master");
// change is the new tip.
List<RevCommit> log = getRemoteLog();
@@ -291,7 +291,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
public void submitDependentConflictingChangesOutOfOrder() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change = createChange("Change 1", "b", "b1");
@@ -323,7 +323,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
public void submitSubsetOfDependentChanges() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change = createChange("Change 1", "b", "b");
@@ -334,7 +334,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
// related to change 3 by topic or ancestor (due to cherrypicking!)
approve(change2.getChangeId());
submit(change3.getChangeId());
RevCommit newHead = getRemoteHead();
RevCommit newHead = projectOperations.project(project).getHead("master");
assertNew(change.getChangeId());
assertNew(change2.getChangeId());
@@ -346,7 +346,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitIdenticalTree() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change1 = createChange("Change 1", "a.txt", "a");
@@ -354,12 +354,13 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "a");
submit(change1.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterFirstSubmit.getShortMessage()).isEqualTo("Change 1");
submit(change2.getChangeId(), new SubmitInput(), null, null);
assertThat(getRemoteHead()).isEqualTo(headAfterFirstSubmit);
assertThat(projectOperations.project(project).getHead("master"))
.isEqualTo(headAfterFirstSubmit);
ChangeInfo info2 = get(change2.getChangeId(), MESSAGES);
assertThat(info2.status).isEqualTo(ChangeStatus.MERGED);

View File

@@ -38,10 +38,10 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
@Test
public void submitWithFastForward() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
submit(change.getChangeId());
RevCommit updatedHead = getRemoteHead();
RevCommit updatedHead = projectOperations.project(project).getHead("master");
assertThat(updatedHead.getId()).isEqualTo(change.getCommit());
assertThat(updatedHead.getParent(0)).isEqualTo(initialHead);
assertSubmitter(change.getChangeId(), 1);
@@ -52,7 +52,7 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
@Test
public void submitMultipleChangesWithFastForward() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
PushOneCommit.Result change2 = createChange();
@@ -65,7 +65,7 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
approve(id2);
submit(id3);
RevCommit updatedHead = getRemoteHead();
RevCommit updatedHead = projectOperations.project(project).getHead("master");
assertThat(updatedHead.getId()).isEqualTo(change3.getCommit());
assertThat(updatedHead.getParent(0).getId()).isEqualTo(change2.getCommit());
assertSubmitter(change.getChangeId(), 1);
@@ -84,7 +84,7 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
@Test
public void submitTwoChangesWithFastForward_missingDependency() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change1 = createChange();
PushOneCommit.Result change2 = createChange();
@@ -96,7 +96,7 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
+ id1
+ ": needs Code-Review");
RevCommit updatedHead = getRemoteHead();
RevCommit updatedHead = projectOperations.project(project).getHead("master");
assertThat(updatedHead.getId()).isEqualTo(initialHead.getId());
assertRefUpdatedEvents();
assertChangeMergedEvents();
@@ -104,11 +104,11 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
@Test
public void submitFastForwardNotPossible_Conflict() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "content");
submit(change.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change2 = createChange("Change 2", "b.txt", "other content");
@@ -129,7 +129,8 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
+ ": Project policy requires "
+ "all submissions to be a fast-forward. Please rebase the change "
+ "locally and upload again for review.");
assertThat(getRemoteHead()).isEqualTo(headAfterFirstSubmit);
assertThat(projectOperations.project(project).getHead("master"))
.isEqualTo(headAfterFirstSubmit);
assertSubmitter(change.getChangeId(), 1);
assertRefUpdatedEvents(initialHead, headAfterFirstSubmit);
@@ -138,7 +139,7 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
@Test
public void submitSameCommitsAsInExperimentalBranch() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
projectOperations
.project(project)
@@ -158,9 +159,9 @@ public class SubmitByFastForwardIT extends AbstractSubmit {
.isEqualTo(c1.getId());
submit(id1);
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
assertThat(getRemoteHead().getId()).isEqualTo(c1.getId());
assertThat(projectOperations.project(project).getHead("master").getId()).isEqualTo(c1.getId());
assertSubmitter(id1, 1);
assertRefUpdatedEvents(initialHead, headAfterSubmit);

View File

@@ -30,10 +30,10 @@ public class SubmitByMergeAlwaysIT extends AbstractSubmitByMerge {
@Test
public void submitWithMergeIfFastForwardPossible() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
submit(change.getChangeId());
RevCommit headAfterSubmit = getRemoteHead();
RevCommit headAfterSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterSubmit.getParentCount()).isEqualTo(2);
assertThat(headAfterSubmit.getParent(0)).isEqualTo(initialHead);
assertThat(headAfterSubmit.getParent(1)).isEqualTo(change.getCommit());
@@ -47,7 +47,7 @@ public class SubmitByMergeAlwaysIT extends AbstractSubmitByMerge {
@Test
public void submitMultipleChanges() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
// Submit a change so that the remote head advances
PushOneCommit.Result change = createChange("Change 1", "b", "b");

View File

@@ -68,10 +68,10 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
@Test
public void submitWithFastForward() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
submit(change.getChangeId());
RevCommit updatedHead = getRemoteHead();
RevCommit updatedHead = projectOperations.project(project).getHead("master");
assertThat(updatedHead.getId()).isEqualTo(change.getCommit());
assertThat(updatedHead.getParent(0)).isEqualTo(initialHead);
assertSubmitter(change.getChangeId(), 1);
@@ -84,7 +84,7 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
@Test
public void submitMultipleChanges() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo.reset(initialHead);
PushOneCommit.Result change = createChange("Change 1", "b", "b");
@@ -145,8 +145,8 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
Project.NameKey p2 = projectOperations.newProject().create();
Project.NameKey p3 = projectOperations.newProject().create();
RevCommit initialHead2 = getRemoteHead(p2, "master");
RevCommit initialHead3 = getRemoteHead(p3, "master");
RevCommit initialHead2 = projectOperations.project(p2).getHead("master");
RevCommit initialHead3 = projectOperations.project(p3).getHead("master");
TestRepository<?> repo1 = cloneProject(p1);
TestRepository<?> repo2 = cloneProject(p2);
@@ -226,9 +226,9 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
TestRepository<?> repo2 = cloneProject(p2);
TestRepository<?> repo3 = cloneProject(p3);
RevCommit initialHead1 = getRemoteHead(p1, "master");
RevCommit initialHead2 = getRemoteHead(p2, "master");
RevCommit initialHead3 = getRemoteHead(p3, "master");
RevCommit initialHead1 = projectOperations.project(p1).getHead("master");
RevCommit initialHead2 = projectOperations.project(p2).getHead("master");
RevCommit initialHead3 = projectOperations.project(p3).getHead("master");
PushOneCommit.Result change1a =
createChange(
@@ -315,12 +315,12 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
@Test
public void submitWithMergedAncestorsOnOtherBranch() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change1 =
createChange(testRepo, "master", "base commit", "a.txt", "1", "");
submit(change1.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
gApi.projects().name(project.get()).branch("branch").create(new BranchInput());
@@ -364,11 +364,11 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
@Test
public void submitWithOpenAncestorsOnOtherBranch() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change1 =
createChange(testRepo, "master", "base commit", "a.txt", "1", "");
submit(change1.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
gApi.projects().name(project.get()).branch("branch").create(new BranchInput());
@@ -396,7 +396,7 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
Project.NameKey p3 = projectOperations.newProject().create();
TestRepository<?> repo3 = cloneProject(p3);
RevCommit repo3Head = getRemoteHead(p3, "master");
RevCommit repo3Head = projectOperations.project(p3).getHead("master");
PushOneCommit.Result change3b =
createChange(
repo3,
@@ -437,7 +437,7 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
@Test
public void gerritWorkflow() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
// We'll setup a master and a stable branch.
// Then we create a change to be applied to master, which is
@@ -463,8 +463,8 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
gApi.changes().id(cherryId).current().submit();
// Create the merge locally
RevCommit stable = getRemoteHead(project, "stable");
RevCommit master = getRemoteHead(project, "master");
RevCommit stable = projectOperations.project(project).getHead("stable");
RevCommit master = projectOperations.project(project).getHead("master");
testRepo.git().fetch().call();
testRepo.git().branchCreate().setName("stable").setStartPoint(stable).call();
testRepo.git().branchCreate().setName("master").setStartPoint(master).call();

View File

@@ -53,11 +53,11 @@ public class SubmitByRebaseAlwaysIT extends AbstractSubmitByRebase {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitWithPossibleFastForward() throws Throwable {
RevCommit oldHead = getRemoteHead();
RevCommit oldHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
submit(change.getChangeId());
RevCommit head = getRemoteHead();
RevCommit head = projectOperations.project(project).getHead("master");
assertThat(head.getId()).isNotEqualTo(change.getCommit());
assertThat(head.getParent(0)).isEqualTo(oldHead);
assertApproved(change.getChangeId());

View File

@@ -33,10 +33,10 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmitByRebase {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitWithFastForward() throws Throwable {
RevCommit oldHead = getRemoteHead();
RevCommit oldHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange();
submit(change.getChangeId());
RevCommit head = getRemoteHead();
RevCommit head = projectOperations.project(project).getHead("master");
assertThat(head.getId()).isEqualTo(change.getCommit());
assertThat(head.getParent(0)).isEqualTo(oldHead);
assertApproved(change.getChangeId());
@@ -51,19 +51,19 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmitByRebase {
@Test
@TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
public void submitWithContentMerge() throws Throwable {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
PushOneCommit.Result change = createChange("Change 1", "a.txt", "aaa\nbbb\nccc\n");
submit(change.getChangeId());
RevCommit headAfterFirstSubmit = getRemoteHead();
RevCommit headAfterFirstSubmit = projectOperations.project(project).getHead("master");
PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "aaa\nbbb\nccc\nddd\n");
submit(change2.getChangeId());
RevCommit headAfterSecondSubmit = getRemoteHead();
RevCommit headAfterSecondSubmit = projectOperations.project(project).getHead("master");
testRepo.reset(change.getCommit());
PushOneCommit.Result change3 = createChange("Change 3", "a.txt", "bbb\nccc\n");
submit(change3.getChangeId());
assertRebase(testRepo, true);
RevCommit headAfterThirdSubmit = getRemoteHead();
RevCommit headAfterThirdSubmit = projectOperations.project(project).getHead("master");
assertThat(headAfterThirdSubmit.getParent(0)).isEqualTo(headAfterSecondSubmit);
assertApproved(change3.getChangeId());
assertCurrentRevision(change3.getChangeId(), 2, headAfterThirdSubmit);

View File

@@ -60,7 +60,7 @@ public abstract class AbstractPushTag extends AbstractDaemonTest {
// clone with user to avoid inherited tag permissions of admin user
testRepo = cloneProject(project, user);
initialHead = getRemoteHead();
initialHead = projectOperations.project(project).getHead("master");
tagType = getTagType();
}

View File

@@ -127,7 +127,7 @@ public class AccessIT extends AbstractDaemonTest {
@Test
public void addAccessSection() throws Exception {
RevCommit initialHead = getRemoteHead(newProjectName, RefNames.REFS_CONFIG);
RevCommit initialHead = projectOperations.project(newProjectName).getHead(RefNames.REFS_CONFIG);
ProjectAccessInput accessInput = newProjectAccessInput();
AccessSectionInfo accessSectionInfo = createDefaultAccessSectionInfo();
@@ -137,7 +137,7 @@ public class AccessIT extends AbstractDaemonTest {
assertThat(pApi().access().local).isEqualTo(accessInput.add);
RevCommit updatedHead = getRemoteHead(newProjectName, RefNames.REFS_CONFIG);
RevCommit updatedHead = projectOperations.project(newProjectName).getHead(RefNames.REFS_CONFIG);
eventRecorder.assertRefUpdatedEvents(
newProjectName.get(), RefNames.REFS_CONFIG, null, initialHead, initialHead, updatedHead);
}

View File

@@ -44,7 +44,7 @@ public class CheckMergeabilityIT extends AbstractDaemonTest {
@Test
public void checkMergeableCommit() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo
.branch("HEAD")
.commit()
@@ -79,7 +79,7 @@ public class CheckMergeabilityIT extends AbstractDaemonTest {
@Test
public void checkUnMergeableCommit() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo
.branch("HEAD")
.commit()
@@ -114,7 +114,7 @@ public class CheckMergeabilityIT extends AbstractDaemonTest {
@Test
public void checkOursMergeStrategy() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo
.branch("HEAD")
.commit()
@@ -208,7 +208,7 @@ public class CheckMergeabilityIT extends AbstractDaemonTest {
cherry.current().review(ReviewInput.approve());
cherry.current().submit();
ObjectId remoteId = getRemoteHead();
ObjectId remoteId = projectOperations.project(project).getHead("master");
assertThat(remoteId).isNotEqualTo(commitId);
assertContentMerged("master", commitId.getName(), "recursive");
}
@@ -234,7 +234,7 @@ public class CheckMergeabilityIT extends AbstractDaemonTest {
@Test
public void checkInvalidStrategy() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
testRepo
.branch("HEAD")
.commit()

View File

@@ -169,7 +169,7 @@ public class DeleteBranchesIT extends AbstractDaemonTest {
private HashMap<String, RevCommit> initialRevisions(List<String> branches) throws Exception {
HashMap<String, RevCommit> result = new HashMap<>();
for (String branch : branches) {
result.put(branch, getRemoteHead(project, branch));
result.put(branch, projectOperations.project(project).getHead(branch));
}
return result;
}

View File

@@ -120,7 +120,7 @@ public class DeleteTagsIT extends AbstractDaemonTest {
HashMap<String, RevCommit> result = new HashMap<>();
for (String tag : tags) {
String ref = prefixRef(tag);
result.put(ref, getRemoteHead(project, ref));
result.put(ref, projectOperations.project(project).getHead(ref));
}
return result;
}

View File

@@ -69,7 +69,7 @@ public class ListBranchesIT extends AbstractDaemonTest {
public void listBranches() throws Exception {
String master = pushTo("refs/heads/master").getCommit().name();
String dev = pushTo("refs/heads/dev").getCommit().name();
String refsConfig = getRemoteHead(project, RefNames.REFS_CONFIG).name();
String refsConfig = projectOperations.project(project).getHead(RefNames.REFS_CONFIG).name();
assertRefs(
ImmutableList.of(
branch("HEAD", "master", false),
@@ -114,7 +114,10 @@ public class ListBranchesIT extends AbstractDaemonTest {
public void listBranchesUsingPagination() throws Exception {
BranchInfo head = branch("HEAD", "master", false);
BranchInfo refsConfig =
branch(RefNames.REFS_CONFIG, getRemoteHead(project, RefNames.REFS_CONFIG).name(), false);
branch(
RefNames.REFS_CONFIG,
projectOperations.project(project).getHead(RefNames.REFS_CONFIG).name(),
false);
BranchInfo master =
branch("refs/heads/master", pushTo("refs/heads/master").getCommit().getName(), false);
BranchInfo branch1 =

View File

@@ -113,7 +113,7 @@ public class SubmittedTogetherIT extends AbstractDaemonTest {
@Test
public void respectWholeTopic() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
// Create two independent commits and push.
RevCommit c1_1 = commitBuilder().add("a.txt", "1").message("subject: 1").create();
String id1 = getChangeId(c1_1);
@@ -135,7 +135,7 @@ public class SubmittedTogetherIT extends AbstractDaemonTest {
@Test
public void anonymousWholeTopic() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
RevCommit a = commitBuilder().add("a", "1").message("change 1").create();
pushHead(testRepo, "refs/for/master/" + name("topic"), false);
String id1 = getChangeId(a);
@@ -157,7 +157,7 @@ public class SubmittedTogetherIT extends AbstractDaemonTest {
@Test
public void topicChaining() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
RevCommit c1_1 = commitBuilder().add("a.txt", "1").message("subject: 1").create();
String id1 = getChangeId(c1_1);
@@ -185,7 +185,7 @@ public class SubmittedTogetherIT extends AbstractDaemonTest {
@Test
public void respectTopicsOnAncestors() throws Exception {
RevCommit initialHead = getRemoteHead();
RevCommit initialHead = projectOperations.project(project).getHead("master");
RevCommit c1_1 = commitBuilder().add("a.txt", "1").message("subject: 1").create();
String id1 = getChangeId(c1_1);

View File

@@ -85,7 +85,7 @@ public class RulesIT extends AbstractDaemonTest {
}
private SubmitRecord.Status statusForRule() throws Exception {
String oldHead = getRemoteHead().name();
String oldHead = projectOperations.project(project).getHead("master").name();
PushOneCommit.Result result1 =
pushFactory.create(user.newIdent(), testRepo).to("refs/for/master");
testRepo.reset(oldHead);