Merge changes I55de272c,I526de6bc,I295fa136
* changes:
Refactor MergeOpRepoManager by consolidating getRepo and openRepo
Fix stale OpenRepo in MergeOpRepoManager
Remove stale OpenRepo dependency from PreviewSubmit
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmoduleSubscriptionsWholeTopicMergeIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmoduleSubscriptionsWholeTopicMergeIT.java
index 0c81a35..cfc5937 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmoduleSubscriptionsWholeTopicMergeIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmoduleSubscriptionsWholeTopicMergeIT.java
@@ -136,9 +136,10 @@
gApi.changes().id(id2).current().review(ReviewInput.approve());
gApi.changes().id(id3).current().review(ReviewInput.approve());
- BinaryResult request = gApi.changes().id(id1).current().submitPreview();
- Map<Branch.NameKey, RevTree> preview = fetchFromBundles(request);
-
+ Map<Branch.NameKey, RevTree> preview;
+ try (BinaryResult request = gApi.changes().id(id1).current().submitPreview()) {
+ preview = fetchFromBundles(request);
+ }
gApi.changes().id(id1).current().submit();
ObjectId subRepoId =
subRepo
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
index d1750fa..81f136d 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
@@ -150,10 +150,12 @@
public void submitToEmptyRepo() throws Exception {
RevCommit initialHead = getRemoteHead();
PushOneCommit.Result change = createChange();
- BinaryResult request = submitPreview(change.getChangeId());
+ Map<Branch.NameKey, RevTree> actual;
+ try (BinaryResult request = submitPreview(change.getChangeId())) {
+ actual = fetchFromBundles(request);
+ }
RevCommit headAfterSubmitPreview = getRemoteHead();
assertThat(headAfterSubmitPreview).isEqualTo(initialHead);
- Map<Branch.NameKey, RevTree> actual = fetchFromBundles(request);
assertThat(actual).hasSize(1);
submit(change.getChangeId());
@@ -165,14 +167,15 @@
public void submitSingleChange() throws Exception {
RevCommit initialHead = getRemoteHead();
PushOneCommit.Result change = createChange();
- BinaryResult request = submitPreview(change.getChangeId());
+ Map<Branch.NameKey, RevTree> actual;
+ try (BinaryResult request = submitPreview(change.getChangeId())) {
+ actual = fetchFromBundles(request);
+ }
RevCommit headAfterSubmit = getRemoteHead();
assertThat(headAfterSubmit).isEqualTo(initialHead);
assertRefUpdatedEvents();
assertChangeMergedEvents();
- Map<Branch.NameKey, RevTree> actual = fetchFromBundles(request);
-
if ((getSubmitType() == SubmitType.CHERRY_PICK)
|| (getSubmitType() == SubmitType.REBASE_ALWAYS)) {
// The change is updated as well:
@@ -199,21 +202,16 @@
PushOneCommit.Result change4 = createChange("Change 4", "e", "e");
// change 2 is not approved, but we ignore labels
approve(change3.getChangeId());
- BinaryResult request = null;
- String msg = null;
- try {
- request = submitPreview(change4.getChangeId());
- } catch (Exception e) {
- msg = e.getMessage();
- }
- if (getSubmitType() == SubmitType.CHERRY_PICK) {
+ try (BinaryResult request = submitPreview(change4.getChangeId())) {
+ assertThat(getSubmitType()).isEqualTo(SubmitType.CHERRY_PICK);
Map<Branch.NameKey, RevTree> s = fetchFromBundles(request);
submit(change4.getChangeId());
assertRevTrees(project, s);
- } else if (getSubmitType() == SubmitType.FAST_FORWARD_ONLY) {
- assertThat(msg)
- .isEqualTo(
+ } catch (RestApiException e) {
+ switch (getSubmitType()) {
+ case FAST_FORWARD_ONLY:
+ assertThat(e.getMessage()).isEqualTo(
"Failed to submit 3 changes due to the following problems:\n"
+ "Change "
+ change2.getChange().getId()
@@ -228,26 +226,19 @@
+ ": Project policy "
+ "requires all submissions to be a fast-forward. Please "
+ "rebase the change locally and upload again for review.");
- RevCommit headAfterSubmit = getRemoteHead();
- assertThat(headAfterSubmit).isEqualTo(headAfterFirstSubmit);
- assertRefUpdatedEvents(initialHead, headAfterFirstSubmit);
- assertChangeMergedEvents(change.getChangeId(), headAfterFirstSubmit.name());
- } else if ((getSubmitType() == SubmitType.REBASE_IF_NECESSARY)
- || (getSubmitType() == SubmitType.REBASE_ALWAYS)) {
- String change2hash = change2.getChange().currentPatchSet().getRevision().get();
- assertThat(msg)
- .isEqualTo(
+ break;
+ case REBASE_IF_NECESSARY:
+ case REBASE_ALWAYS:
+ String change2hash = change2.getChange().currentPatchSet().getRevision().get();
+ assertThat(e.getMessage()).isEqualTo(
"Cannot rebase "
+ change2hash
+ ": The change could "
+ "not be rebased due to a conflict during merge.");
- RevCommit headAfterSubmit = getRemoteHead();
- assertThat(headAfterSubmit).isEqualTo(headAfterFirstSubmit);
- assertRefUpdatedEvents(initialHead, headAfterFirstSubmit);
- assertChangeMergedEvents(change.getChangeId(), headAfterFirstSubmit.name());
- } else {
- assertThat(msg)
- .isEqualTo(
+ break;
+ case MERGE_ALWAYS:
+ case MERGE_IF_NECESSARY:
+ assertThat(e.getMessage()).isEqualTo(
"Failed to submit 3 changes due to the following problems:\n"
+ "Change "
+ change2.getChange().getId()
@@ -264,6 +255,12 @@
+ ": Change could not be "
+ "merged due to a path conflict. Please rebase the change "
+ "locally and upload the rebased commit for review.");
+ break;
+ default:
+ fail("Should not reach here.");
+ break;
+ }
+
RevCommit headAfterSubmit = getRemoteHead();
assertThat(headAfterSubmit).isEqualTo(headAfterFirstSubmit);
assertRefUpdatedEvents(initialHead, headAfterFirstSubmit);
@@ -279,12 +276,13 @@
PushOneCommit.Result change4 = createChange("Change 4", "e", "e");
// change 2 is not approved, but we ignore labels
approve(change3.getChangeId());
- BinaryResult request = submitPreview(change4.getChangeId());
-
+ Map<Branch.NameKey, RevTree> actual;
+ try (BinaryResult request = submitPreview(change4.getChangeId())) {
+ actual = fetchFromBundles(request);
+ }
Map<String, Map<String, Integer>> expected = new HashMap<>();
- expected.put(project.get(), new HashMap<String, Integer>());
+ expected.put(project.get(), new HashMap<>());
expected.get(project.get()).put("refs/heads/master", 3);
- Map<Branch.NameKey, RevTree> actual = fetchFromBundles(request);
assertThat(actual).containsKey(new Branch.NameKey(project, "refs/heads/master"));
if (getSubmitType() == SubmitType.CHERRY_PICK) {
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/SubmitByMergeIfNecessaryIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/SubmitByMergeIfNecessaryIT.java
index 75e7356..96b982d 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/SubmitByMergeIfNecessaryIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/SubmitByMergeIfNecessaryIT.java
@@ -171,9 +171,10 @@
approve(change3.getChangeId());
// get a preview before submitting:
- BinaryResult request = submitPreview(change1b.getChangeId());
- Map<Branch.NameKey, RevTree> preview = fetchFromBundles(request);
-
+ Map<Branch.NameKey, RevTree> preview;
+ try (BinaryResult request = submitPreview(change1b.getChangeId())) {
+ preview = fetchFromBundles(request);
+ }
submit(change1b.getChangeId());
RevCommit tip1 = getRemoteLog(p1, "master").get(0);
@@ -270,11 +271,11 @@
+ "and upload the rebased commit for review.";
// Get a preview before submitting:
- try {
+ try (BinaryResult r = submitPreview(change1b.getChangeId())) {
// We cannot just use the ExpectedException infrastructure as provided
// by AbstractDaemonTest, as then we'd stop early and not test the
// actual submit.
- submitPreview(change1b.getChangeId());
+
fail("expected failure");
} catch (RestApiException e) {
assertThat(e.getMessage()).isEqualTo(msg);
@@ -545,11 +546,12 @@
approve(change1.getChangeId());
// get a preview before submitting:
- BinaryResult request = submitPreview(change1.getChangeId(), "tgz");
-
- assertThat(request.getContentType()).isEqualTo("application/x-gzip");
- File tempfile = File.createTempFile("test", null);
- request.writeTo(new FileOutputStream(tempfile));
+ File tempfile;
+ try (BinaryResult request = submitPreview(change1.getChangeId(), "tgz")) {
+ assertThat(request.getContentType()).isEqualTo("application/x-gzip");
+ tempfile = File.createTempFile("test", null);
+ request.writeTo(new FileOutputStream(tempfile));
+ }
InputStream is = new GZIPInputStream(new FileInputStream(tempfile));
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/RevisionApiImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/RevisionApiImpl.java
index fe821e6..8fb1d95 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/RevisionApiImpl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/RevisionApiImpl.java
@@ -231,8 +231,12 @@
@Override
public BinaryResult submitPreview(String format) throws RestApiException {
- submitPreview.setFormat(format);
- return submitPreview.apply(revision);
+ try {
+ submitPreview.setFormat(format);
+ return submitPreview.apply(revision);
+ } catch (OrmException e) {
+ throw new RestApiException("Cannot get submit preview", e);
+ }
}
@Override
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PreviewSubmit.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PreviewSubmit.java
index 67c0a6a..3fc9789 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PreviewSubmit.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PreviewSubmit.java
@@ -33,6 +33,7 @@
import com.google.gerrit.server.git.MergeOpRepoManager;
import com.google.gerrit.server.git.MergeOpRepoManager.OpenRepo;
import com.google.gerrit.server.project.ChangeControl;
+import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -40,7 +41,6 @@
import java.io.IOException;
import java.io.OutputStream;
import java.util.Collection;
-import java.util.Set;
import org.apache.commons.compress.archivers.ArchiveOutputStream;
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.NullProgressMonitor;
@@ -77,7 +77,7 @@
}
@Override
- public BinaryResult apply(RevisionResource rsrc) throws RestApiException {
+ public BinaryResult apply(RevisionResource rsrc) throws OrmException, RestApiException {
if (Strings.isNullOrEmpty(format)) {
throw new BadRequestException("format is not specified");
}
@@ -100,63 +100,77 @@
if (!control.getUser().isIdentifiedUser()) {
throw new MethodNotAllowedException("Anonymous users cannot submit");
}
- try (BinaryResult b = getBundles(rsrc, f)) {
- b.disableGzip()
- .setContentType(f.getMimeType())
- .setAttachmentName("submit-preview-" + change.getChangeId() + "." + format);
- return b;
- } catch (OrmException | IOException e) {
- throw new RestApiException("Error generating submit preview");
- }
+
+ return getBundles(rsrc, f);
}
- private BinaryResult getBundles(RevisionResource rsrc, final ArchiveFormat f)
+ private BinaryResult getBundles(RevisionResource rsrc, ArchiveFormat f)
throws OrmException, RestApiException {
ReviewDb db = dbProvider.get();
ChangeControl control = rsrc.getControl();
IdentifiedUser caller = control.getUser().asIdentifiedUser();
Change change = rsrc.getChange();
- BinaryResult bin;
- try (MergeOp op = mergeOpProvider.get()) {
+ final MergeOp op = mergeOpProvider.get();
+ try {
op.merge(db, change, caller, false, new SubmitInput(), true);
- final MergeOpRepoManager orm = op.getMergeOpRepoManager();
- final Set<Project.NameKey> projects = op.getAllProjects();
-
- bin =
- new BinaryResult() {
- @Override
- public void writeTo(OutputStream out) throws IOException {
- try (ArchiveOutputStream aos = f.createArchiveOutputStream(out)) {
- for (Project.NameKey p : projects) {
- OpenRepo or = orm.getRepo(p);
- BundleWriter bw = new BundleWriter(or.getRepo());
- bw.setObjectCountCallback(null);
- bw.setPackConfig(null);
- Collection<ReceiveCommand> refs = or.getUpdate().getRefUpdates();
- for (ReceiveCommand r : refs) {
- bw.include(r.getRefName(), r.getNewId());
- ObjectId oldId = r.getOldId();
- if (!oldId.equals(ObjectId.zeroId())) {
- bw.assume(or.getCodeReviewRevWalk().parseCommit(oldId));
- }
- }
- // This naming scheme cannot produce directory/file conflicts
- // as no projects contains ".git/":
- String path = p.get() + ".git";
-
- LimitedByteArrayOutputStream bos =
- new LimitedByteArrayOutputStream(maxBundleSize, 1024);
- bw.writeBundle(NullProgressMonitor.INSTANCE, bos);
- f.putEntry(aos, path, bos.toByteArray());
- }
- } catch (LimitExceededException e) {
- throw new NotImplementedException(
- "The bundle is too big to generate at the server");
- }
- }
- };
+ BinaryResult bin = new SubmitPreviewResult(op, f, maxBundleSize);
+ bin.disableGzip().setContentType(f.getMimeType())
+ .setAttachmentName("submit-preview-" + change.getChangeId() + "." + format);
+ return bin;
+ } catch (OrmException | RestApiException | RuntimeException e) {
+ op.close();
+ throw e;
}
- return bin;
+ }
+
+ private static class SubmitPreviewResult extends BinaryResult {
+
+ private final MergeOp mergeOp;
+ private final ArchiveFormat archiveFormat;
+ private final int maxBundleSize;
+
+ private SubmitPreviewResult(MergeOp mergeOp, ArchiveFormat archiveFormat, int maxBundleSize) {
+ this.mergeOp = mergeOp;
+ this.archiveFormat = archiveFormat;
+ this.maxBundleSize = maxBundleSize;
+ }
+
+ @Override
+ public void writeTo(OutputStream out) throws IOException {
+ try (ArchiveOutputStream aos = archiveFormat
+ .createArchiveOutputStream(out)) {
+ MergeOpRepoManager orm = mergeOp.getMergeOpRepoManager();
+ for (Project.NameKey p : mergeOp.getAllProjects()) {
+ OpenRepo or = orm.getRepo(p);
+ BundleWriter bw = new BundleWriter(or.getRepo());
+ bw.setObjectCountCallback(null);
+ bw.setPackConfig(null);
+ Collection<ReceiveCommand> refs = or.getUpdate().getRefUpdates();
+ for (ReceiveCommand r : refs) {
+ bw.include(r.getRefName(), r.getNewId());
+ ObjectId oldId = r.getOldId();
+ if (!oldId.equals(ObjectId.zeroId())) {
+ bw.assume(or.getCodeReviewRevWalk().parseCommit(oldId));
+ }
+ }
+ LimitedByteArrayOutputStream bos = new LimitedByteArrayOutputStream(maxBundleSize, 1024);
+ bw.writeBundle(NullProgressMonitor.INSTANCE, bos);
+ // This naming scheme cannot produce directory/file conflicts
+ // as no projects contains ".git/":
+ String path = p.get() + ".git";
+ archiveFormat.putEntry(aos, path, bos.toByteArray());
+ }
+ } catch (LimitExceededException e) {
+ throw new NotImplementedException("The bundle is too big to generate at the server");
+ } catch (NoSuchProjectException e) {
+ throw new IOException(e);
+ }
+ }
+
+ @Override
+ public void close() throws IOException {
+ mergeOp.close();
+ }
}
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/GitModules.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/GitModules.java
index 1c74984..e680ea7 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/GitModules.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/GitModules.java
@@ -64,9 +64,8 @@
this.submissionId = orm.getSubmissionId();
Project.NameKey project = branch.getParentKey();
logDebug("Loading .gitmodules of {} for project {}", branch, project);
- OpenRepo or = null;
try {
- or = orm.openRepo(project);
+ OpenRepo or = orm.getRepo(project);
ObjectId id = or.repo.resolve(branch.get());
if (id == null) {
throw new IOException("Cannot open branch " + branch.get());
@@ -90,10 +89,6 @@
subscriptions = new SubmoduleSectionParser(bbc, canonicalWebUrl, branch).parseAllSections();
} catch (NoSuchProjectException e) {
throw new IOException(e);
- } finally {
- if (or != null) {
- or.close();
- }
}
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
index deea815..452ccee 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
@@ -37,6 +37,7 @@
import com.google.gerrit.extensions.client.SubmitType;
import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
+import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
import com.google.gerrit.extensions.restapi.RestApiException;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Branch;
@@ -463,7 +464,9 @@
new SubmitStrategyListener(submitInput, strategies, commitStatus),
submissionId,
dryrun);
- } catch (SubmoduleException e) {
+ } catch (NoSuchProjectException e) {
+ throw new ResourceNotFoundException(e.getMessage());
+ } catch (IOException | SubmoduleException e) {
throw new IntegrationException(e);
} catch (UpdateException e) {
// BatchUpdate may have inadvertently wrapped an IntegrationException
@@ -493,7 +496,7 @@
private List<SubmitStrategy> getSubmitStrategies(
Map<Branch.NameKey, BranchBatch> toSubmit, SubmoduleOp submoduleOp, boolean dryrun)
- throws IntegrationException {
+ throws IntegrationException, NoSuchProjectException, IOException {
List<SubmitStrategy> strategies = new ArrayList<>();
Set<Branch.NameKey> allBranches = submoduleOp.getBranchesInOrder();
Set<CodeReviewCommit> allCommits =
@@ -731,10 +734,10 @@
private OpenRepo openRepo(Project.NameKey project) throws IntegrationException {
try {
- return orm.openRepo(project);
- } catch (NoSuchProjectException noProject) {
- logWarn("Project " + noProject.project() + " no longer exists, abandoning open changes");
- abandonAllOpenChangeForDeletedProject(noProject.project());
+ return orm.getRepo(project);
+ } catch (NoSuchProjectException e) {
+ logWarn("Project " + project + " no longer exists, abandoning open changes.");
+ abandonAllOpenChangeForDeletedProject(project);
} catch (IOException e) {
throw new IntegrationException("Error opening project " + project, e);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOpRepoManager.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOpRepoManager.java
index 97ac265..3b0af68 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOpRepoManager.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOpRepoManager.java
@@ -113,15 +113,7 @@
return update;
}
- /**
- * Make sure the update has already executed before reset it. TODO:czhen Have a flag in
- * BatchUpdate to mark if it has been executed
- */
- void resetUpdate() {
- update = null;
- }
-
- void close() {
+ private void close() {
if (update != null) {
update.close();
}
@@ -191,13 +183,7 @@
return submissionId;
}
- public OpenRepo getRepo(Project.NameKey project) {
- OpenRepo or = openRepos.get(project);
- checkState(or != null, "repo not yet opened: %s", project);
- return or;
- }
-
- public OpenRepo openRepo(Project.NameKey project) throws NoSuchProjectException, IOException {
+ public OpenRepo getRepo(Project.NameKey project) throws NoSuchProjectException, IOException {
if (openRepos.containsKey(project)) {
return openRepos.get(project);
}
@@ -211,11 +197,12 @@
openRepos.put(project, or);
return or;
} catch (RepositoryNotFoundException e) {
- throw new NoSuchProjectException(project);
+ throw new NoSuchProjectException(project, e);
}
}
- public List<BatchUpdate> batchUpdates(Collection<Project.NameKey> projects) {
+ public List<BatchUpdate> batchUpdates(Collection<Project.NameKey> projects)
+ throws NoSuchProjectException, IOException {
List<BatchUpdate> updates = new ArrayList<>(projects.size());
for (Project.NameKey project : projects) {
updates.add(getRepo(project).getUpdate());
@@ -228,5 +215,6 @@
for (OpenRepo repo : openRepos.values()) {
repo.close();
}
+ openRepos.clear();
}
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeSuperSet.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeSuperSet.java
index 79de8a5..9dc13d0 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeSuperSet.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeSuperSet.java
@@ -288,7 +288,7 @@
closeOrm = true;
}
try {
- OpenRepo or = orm.openRepo(project);
+ OpenRepo or = orm.getRepo(project);
checkState(or.rw.hasRevSort(RevSort.TOPO));
return or;
} catch (NoSuchProjectException e) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
index cdb2c3b..d3e3b37 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
@@ -259,7 +259,7 @@
}
OpenRepo or;
try {
- or = orm.openRepo(s.getProject());
+ or = orm.getRepo(s.getProject());
} catch (NoSuchProjectException e) {
// A project listed a non existent project to be allowed
// to subscribe to it. Allow this for now, i.e. no exception is
@@ -293,7 +293,7 @@
for (Branch.NameKey targetBranch : branches) {
Project.NameKey targetProject = targetBranch.getParentKey();
try {
- OpenRepo or = orm.openRepo(targetProject);
+ OpenRepo or = orm.getRepo(targetProject);
ObjectId id = or.repo.resolve(targetBranch.get());
if (id == null) {
logDebug("The branch " + targetBranch + " doesn't exist.");
@@ -329,7 +329,7 @@
if (branchesByProject.containsKey(project)) {
superProjects.add(project);
// get a new BatchUpdate for the super project
- OpenRepo or = orm.openRepo(project);
+ OpenRepo or = orm.getRepo(project);
for (Branch.NameKey branch : branchesByProject.get(project)) {
addOp(or.getUpdate(), branch);
}
@@ -347,7 +347,7 @@
throws IOException, SubmoduleException {
OpenRepo or;
try {
- or = orm.openRepo(subscriber.getParentKey());
+ or = orm.getRepo(subscriber.getParentKey());
} catch (NoSuchProjectException | IOException e) {
throw new SubmoduleException("Cannot access superproject", e);
}
@@ -406,7 +406,7 @@
throws IOException, SubmoduleException {
OpenRepo or;
try {
- or = orm.openRepo(subscriber.getParentKey());
+ or = orm.getRepo(subscriber.getParentKey());
} catch (NoSuchProjectException | IOException e) {
throw new SubmoduleException("Cannot access superproject", e);
}
@@ -447,7 +447,7 @@
throws SubmoduleException, IOException {
OpenRepo subOr;
try {
- subOr = orm.openRepo(s.getSubmodule().getParentKey());
+ subOr = orm.getRepo(s.getSubmodule().getParentKey());
} catch (NoSuchProjectException | IOException e) {
throw new SubmoduleException("Cannot access submodule", e);
}