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(); 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() { 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.Change;
import com.google.gerrit.reviewdb.client.PatchSet; 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.reviewdb.client.RevId;
import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.IdentifiedUser;
@@ -71,7 +72,7 @@ public class ChangeEdit {
} }
public String getRefName() { public String getRefName() {
return ChangeEditUtil.editRefName(user.getAccountId(), change.getId(), return RefNames.refsEdit(user.getAccountId(), change.getId(),
basePatchSet.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.checkNotNull;
import static com.google.common.base.Preconditions.checkState; 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 static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
import com.google.common.base.Strings; 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.Change;
import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project; 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.CurrentUser;
import com.google.gerrit.server.GerritPersonIdent; import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.IdentifiedUser;
@@ -116,7 +115,7 @@ public class ChangeEditModifier {
} }
IdentifiedUser me = (IdentifiedUser) currentUser.get(); 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())) { try (Repository repo = gitManager.openRepository(change.getProject())) {
Map<String, Ref> refs = repo.getRefDatabase().getRefs(refPrefix); Map<String, Ref> refs = repo.getRefDatabase().getRefs(refPrefix);
@@ -126,7 +125,7 @@ public class ChangeEditModifier {
try (RevWalk rw = new RevWalk(repo)) { try (RevWalk rw = new RevWalk(repo)) {
ObjectId revision = ObjectId.fromString(ps.getRevision().get()); ObjectId revision = ObjectId.fromString(ps.getRevision().get());
String editRefName = editRefName(me.getAccountId(), change.getId(), String editRefName = RefNames.refsEdit(me.getAccountId(), change.getId(),
ps.getId()); ps.getId());
return update(repo, me, editRefName, rw, ObjectId.zeroId(), revision); return update(repo, me, editRefName, rw, ObjectId.zeroId(), revision);
} }
@@ -152,7 +151,7 @@ public class ChangeEditModifier {
Change change = edit.getChange(); Change change = edit.getChange();
IdentifiedUser me = (IdentifiedUser) currentUser.get(); IdentifiedUser me = (IdentifiedUser) currentUser.get();
String refName = editRefName(me.getAccountId(), change.getId(), String refName = RefNames.refsEdit(me.getAccountId(), change.getId(),
current.getId()); current.getId());
try (Repository repo = gitManager.openRepository(change.getProject()); try (Repository repo = gitManager.openRepository(change.getProject());
RevWalk rw = new RevWalk(repo); 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.common.TimeUtil;
import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.ResourceConflictException; 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;
import com.google.gerrit.reviewdb.client.Change.Status; import com.google.gerrit.reviewdb.client.Change.Status;
import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSet;
@@ -110,7 +109,7 @@ public class ChangeEditUtil {
public Optional<ChangeEdit> byChange(Change change, IdentifiedUser user) public Optional<ChangeEdit> byChange(Change change, IdentifiedUser user)
throws IOException { throws IOException {
try (Repository repo = gitManager.openRepository(change.getProject())) { 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); Map<String, Ref> refs = repo.getRefDatabase().getRefs(editRefPrefix);
if (refs.isEmpty()) { if (refs.isEmpty()) {
return Optional.absent(); 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, private RevCommit squashEdit(RevWalk rw, ObjectInserter inserter,
RevCommit edit, PatchSet basePatchSet) RevCommit edit, PatchSet basePatchSet)
throws IOException, ResourceConflictException { throws IOException, ResourceConflictException {

View File

@@ -2011,7 +2011,7 @@ public class ReceiveCommits {
cmd = new ReceiveCommand( cmd = new ReceiveCommand(
ObjectId.zeroId(), ObjectId.zeroId(),
newCommit, newCommit,
ChangeEditUtil.editRefName( RefNames.refsEdit(
currentUser.getAccountId(), currentUser.getAccountId(),
change.getId(), change.getId(),
newPatchSet.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.Account;
import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.RefNames;
import org.junit.Test; import org.junit.Test;
@@ -28,7 +29,7 @@ public class ChangeEditTest {
Account.Id accountId = new Account.Id(1000042); Account.Id accountId = new Account.Id(1000042);
Change.Id changeId = new Change.Id(56414); Change.Id changeId = new Change.Id(56414);
PatchSet.Id psId = new PatchSet.Id(changeId, 50); 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); assertEquals("refs/users/42/1000042/edit-56414/50", refName);
} }
} }