Move edit ref name methods from ChangeEditUtil to RefNames

Change-Id: I797c227fed66ef1e5761c6367f1a96aaeb23c7f2
This commit is contained in:
David Pursehouse
2015-04-16 18:13:06 +09:00
parent 3404e99ba5
commit b9a1e88412
6 changed files with 40 additions and 38 deletions

View File

@@ -78,6 +78,36 @@ public class RefNames {
return r.toString();
}
/**
* Returns reference for this change edit with sharded user and change number:
* refs/users/UU/UUUU/edit-CCCC/P.
*
* @param accountId account id
* @param changeId change number
* @param psId patch set number
* @return reference for this change edit
*/
public static String refsEdit(Account.Id accountId, Change.Id changeId,
PatchSet.Id psId) {
return refsEditPrefix(accountId, changeId) + psId.get();
}
/**
* Returns reference prefix for this change edit with sharded user and
* change number: refs/users/UU/UUUU/edit-CCCC/.
*
* @param accountId account id
* @param changeId change number
* @return reference prefix for this change edit
*/
public static String refsEditPrefix(Account.Id accountId, Change.Id changeId) {
return new StringBuilder(refsUsers(accountId))
.append("/edit-")
.append(changeId.get())
.append("/")
.toString();
}
private RefNames() {
}
}

View File

@@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.reviewdb.client.RevId;
import com.google.gerrit.server.IdentifiedUser;
@@ -71,7 +72,7 @@ public class ChangeEdit {
}
public String getRefName() {
return ChangeEditUtil.editRefName(user.getAccountId(), change.getId(),
return RefNames.refsEdit(user.getAccountId(), change.getId(),
basePatchSet.getId());
}

View File

@@ -16,8 +16,6 @@ package com.google.gerrit.server.edit;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import static com.google.gerrit.server.edit.ChangeEditUtil.editRefName;
import static com.google.gerrit.server.edit.ChangeEditUtil.editRefPrefix;
import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
import com.google.common.base.Strings;
@@ -30,6 +28,7 @@ import com.google.gerrit.extensions.restapi.ResourceConflictException;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.IdentifiedUser;
@@ -116,7 +115,7 @@ public class ChangeEditModifier {
}
IdentifiedUser me = (IdentifiedUser) currentUser.get();
String refPrefix = editRefPrefix(me.getAccountId(), change.getId());
String refPrefix = RefNames.refsEditPrefix(me.getAccountId(), change.getId());
try (Repository repo = gitManager.openRepository(change.getProject())) {
Map<String, Ref> refs = repo.getRefDatabase().getRefs(refPrefix);
@@ -126,7 +125,7 @@ public class ChangeEditModifier {
try (RevWalk rw = new RevWalk(repo)) {
ObjectId revision = ObjectId.fromString(ps.getRevision().get());
String editRefName = editRefName(me.getAccountId(), change.getId(),
String editRefName = RefNames.refsEdit(me.getAccountId(), change.getId(),
ps.getId());
return update(repo, me, editRefName, rw, ObjectId.zeroId(), revision);
}
@@ -152,7 +151,7 @@ public class ChangeEditModifier {
Change change = edit.getChange();
IdentifiedUser me = (IdentifiedUser) currentUser.get();
String refName = editRefName(me.getAccountId(), change.getId(),
String refName = RefNames.refsEdit(me.getAccountId(), change.getId(),
current.getId());
try (Repository repo = gitManager.openRepository(change.getProject());
RevWalk rw = new RevWalk(repo);

View File

@@ -21,7 +21,6 @@ import com.google.common.collect.Iterables;
import com.google.gerrit.common.TimeUtil;
import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Change.Status;
import com.google.gerrit.reviewdb.client.PatchSet;
@@ -110,7 +109,7 @@ public class ChangeEditUtil {
public Optional<ChangeEdit> byChange(Change change, IdentifiedUser user)
throws IOException {
try (Repository repo = gitManager.openRepository(change.getProject())) {
String editRefPrefix = editRefPrefix(user.getAccountId(), change.getId());
String editRefPrefix = RefNames.refsEditPrefix(user.getAccountId(), change.getId());
Map<String, Ref> refs = repo.getRefDatabase().getRefs(editRefPrefix);
if (refs.isEmpty()) {
return Optional.absent();
@@ -190,34 +189,6 @@ public class ChangeEditUtil {
}
}
/**
* Returns reference for this change edit with sharded user and change number:
* refs/users/UU/UUUU/edit-CCCC/P.
*
* @param accountId accout id
* @param changeId change number
* @param psId patch set number
* @return reference for this change edit
*/
public static String editRefName(Account.Id accountId, Change.Id changeId,
PatchSet.Id psId) {
return editRefPrefix(accountId, changeId) + psId.get();
}
/**
* Returns reference prefix for this change edit with sharded user and
* change number: refs/users/UU/UUUU/edit-CCCC/.
*
* @param accountId accout id
* @param changeId change number
* @return reference prefix for this change edit
*/
static String editRefPrefix(Account.Id accountId, Change.Id changeId) {
return String.format("%s/edit-%d/",
RefNames.refsUsers(accountId),
changeId.get());
}
private RevCommit squashEdit(RevWalk rw, ObjectInserter inserter,
RevCommit edit, PatchSet basePatchSet)
throws IOException, ResourceConflictException {

View File

@@ -2011,7 +2011,7 @@ public class ReceiveCommits {
cmd = new ReceiveCommand(
ObjectId.zeroId(),
newCommit,
ChangeEditUtil.editRefName(
RefNames.refsEdit(
currentUser.getAccountId(),
change.getId(),
newPatchSet.getId()));

View File

@@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.RefNames;
import org.junit.Test;
@@ -28,7 +29,7 @@ public class ChangeEditTest {
Account.Id accountId = new Account.Id(1000042);
Change.Id changeId = new Change.Id(56414);
PatchSet.Id psId = new PatchSet.Id(changeId, 50);
String refName = ChangeEditUtil.editRefName(accountId, changeId, psId);
String refName = RefNames.refsEdit(accountId, changeId, psId);
assertEquals("refs/users/42/1000042/edit-56414/50", refName);
}
}