protected @Override Void _call() { getProgressListener().started(); Optional<Ref> origHead = command(RefParse.class).setName(Ref.ORIG_HEAD).call(); Preconditions.checkState(origHead.isPresent(), "Cannot abort. You are not in the middle of a revert process."); // Revert can only be run in a conflicted situation if the abort option is used final boolean hasConflicts = conflictsDatabase().hasConflicts(null); if (hasConflicts) { log.debug("Aborting revert op, will reset conflicts too"); } final ObjectId commitId = origHead.get().getObjectId(); command(ResetOp.class).setMode(ResetMode.HARD).setCommit(commitId).call(); command(UpdateRef.class).setDelete(true).setName(Ref.ORIG_HEAD).call(); getProgressListener().complete(); return null; } }
public TestData resetHard(ObjectId id) { getContext().command(ResetOp.class).setCommit(id).setMode(ResetMode.HARD).call(); return this; }
.setRefSpec(commit.get(0)).call(); checkParameter(commitId.isPresent(), "Commit could not be resolved."); reset.setCommit(Suppliers.ofInstance(commitId.get()));
.setRefSpec(commit.get(0)).call(); checkParameter(commitId.isPresent(), "Commit could not be resolved."); reset.setCommit(Suppliers.ofInstance(commitId.get()));
.setRefSpec(commit.get(0)).call(); checkParameter(commitId.isPresent(), "Commit could not be resolved."); reset.setCommit(Suppliers.ofInstance(commitId.get()));
@Test public void testResetKeep() throws Exception { ObjectId oId1 = insertAndAdd(points1); geogig.command(CommitOp.class).setMessage("commit for " + idP1).call(); assertEquals(oId1, repo.index().findStaged(appendChild(pointsName, idP1)).get().getObjectId()); ObjectId oId1_modified = insertAndAdd(points1_modified); ObjectId oId2 = insertAndAdd(points2); ObjectId oId3 = insertAndAdd(points3); assertEquals(oId1_modified, repo.index().findStaged(appendChild(pointsName, idP1)).get().getObjectId()); assertEquals(oId2, repo.index().findStaged(appendChild(pointsName, idP2)).get().getObjectId()); assertEquals(oId3, repo.index().findStaged(appendChild(pointsName, idP3)).get().getObjectId()); exception.expect(UnsupportedOperationException.class); geogig.command(ResetOp.class).setCommit(null).setMode(ResetMode.KEEP).call(); }
@Test public void testResetKeep() throws Exception { ObjectId oId1 = insertAndAdd(points1); geogig.command(CommitOp.class).setMessage("commit for " + idP1).call(); assertEquals(oId1, repo.index().findStaged(appendChild(pointsName, idP1)).get().getObjectId()); ObjectId oId1_modified = insertAndAdd(points1_modified); ObjectId oId2 = insertAndAdd(points2); ObjectId oId3 = insertAndAdd(points3); assertEquals(oId1_modified, repo.index().findStaged(appendChild(pointsName, idP1)).get().getObjectId()); assertEquals(oId2, repo.index().findStaged(appendChild(pointsName, idP2)).get().getObjectId()); assertEquals(oId3, repo.index().findStaged(appendChild(pointsName, idP3)).get().getObjectId()); exception.expect(UnsupportedOperationException.class); geogig.command(ResetOp.class).setCommit((ObjectId) null).setMode(ResetMode.KEEP).call(); }
geogig.command(ResetOp.class).setCommit(Suppliers.ofInstance(currHead.get().getObjectId())) .setMode(ResetMode.SOFT).call();
geogig.command(ResetOp.class).setCommit(Suppliers.ofInstance(currHead.get().getObjectId())) .setMode(ResetMode.SOFT).call();
.setCommit(Suppliers.ofInstance(resetCommit.getId())).call(); Repository repository = geogig.getRepository(); assertEquals(0, repository.conflictsDatabase().getCountByPrefix(null, null));
.setCommit(Suppliers.ofInstance(resetCommit.getId())).call(); Repository repository = geogig.getRepository(); assertEquals(0, repository.conflictsDatabase().getCountByPrefix(null, null));
@Test public void testResetPathFixesConflict() throws Exception { Feature points1Modified = feature(pointsType, idP1, "StringProp1_2", new Integer(1000), "POINT(1 1)"); Feature points1ModifiedB = feature(pointsType, idP1, "StringProp1_3", new Integer(2000), "POINT(1 1)"); insertAndAdd(points1); RevCommit resetCommit = geogig.command(CommitOp.class).call(); geogig.command(BranchCreateOp.class).setName("TestBranch").call(); insertAndAdd(points1Modified); geogig.command(CommitOp.class).call(); geogig.command(CheckoutOp.class).setSource("TestBranch").call(); insertAndAdd(points1ModifiedB); insertAndAdd(points2); geogig.command(CommitOp.class).call(); geogig.command(CheckoutOp.class).setSource("master").call(); Ref branch = geogig.command(RefParse.class).setName("TestBranch").call().get(); try { geogig.command(MergeOp.class).addCommit(branch.getObjectId()).call(); fail(); } catch (MergeConflictsException e) { assertTrue(e.getMessage().contains("conflict")); } geogig.command(ResetOp.class).addPattern(pointsName + "/" + idP1) .setCommit(Suppliers.ofInstance(resetCommit.getId())).call(); Repository repository = geogig.getRepository(); ConflictsDatabase conflicts = repository.conflictsDatabase(); assertEquals(0, conflicts.getCountByPrefix(null, null)); }
@Test public void testResetPathFixesConflict() throws Exception { Feature points1Modified = feature(pointsType, idP1, "StringProp1_2", new Integer(1000), "POINT(1 1)"); Feature points1ModifiedB = feature(pointsType, idP1, "StringProp1_3", new Integer(2000), "POINT(1 1)"); insertAndAdd(points1); RevCommit resetCommit = geogig.command(CommitOp.class).call(); geogig.command(BranchCreateOp.class).setName("TestBranch").call(); insertAndAdd(points1Modified); geogig.command(CommitOp.class).call(); geogig.command(CheckoutOp.class).setSource("TestBranch").call(); insertAndAdd(points1ModifiedB); insertAndAdd(points2); geogig.command(CommitOp.class).call(); geogig.command(CheckoutOp.class).setSource("master").call(); Ref branch = geogig.command(RefParse.class).setName("TestBranch").call().get(); try { geogig.command(MergeOp.class).addCommit(branch.getObjectId()).call(); fail(); } catch (MergeConflictsException e) { assertTrue(e.getMessage().contains("conflict")); } geogig.command(ResetOp.class).addPattern(pointsName + "/" + idP1) .setCommit(Suppliers.ofInstance(resetCommit.getId())).call(); Repository repository = geogig.getRepository(); ConflictsDatabase conflicts = repository.conflictsDatabase(); assertEquals(0, conflicts.getCountByPrefix(null, null)); }
repo4.command(ResetOp.class).setCommit(Suppliers.ofInstance(masterOriginal.get().getId())) .setMode(ResetMode.HARD).call();
public @Test void healthCheckWithConflicts() { // fake PRPrepareOp fakeUpToDate(); TestData.point1_modified.setAttribute("sp", "changed on pr target repo"); origin.checkout("master").insert(TestData.point1_modified).add().commit("ci for conflict"); GeogigTransaction tx = request.getTransaction(origin.getRepo().context()); tx.command(UpdateRef.class).setName("refs/heads/" + request.getTargetBranch()) .setNewValue(origin.getRef(request.getTargetBranch()).getObjectId()); tx.command(CheckoutOp.class).setSource(request.getTargetBranch()).call(); tx.command(ResetOp.class).setCommit(origin.getRef(request.getTargetBranch()).getObjectId()) .setMode(ResetMode.HARD).call(); ObjectId localRemoteCommit = clone.getRef(request.getRemoteBranch()).getObjectId(); try { tx.command(MergeOp.class).addCommit(localRemoteCommit).call(); fail("Expected MergeConflictsException"); } catch (MergeConflictsException expected) { // } PRStatus status = origin.getRepo().command(PRHealthCheckOp.class).setId(request.getId()) .call(); assertNotNull(status); assertEquals(request, status.getRequest()); assertEquals(Sets.newHashSet("Lines", "Points", "Polygons"), Sets.newHashSet(status.getAffectedLayers())); Optional<ObjectId> mergeCommit = status.getMergeCommit(); assertFalse(mergeCommit.toString(), mergeCommit.isPresent()); assertEquals(0, status.getCommitsBehindRemoteBranch()); assertEquals(1, status.getCommitsBehindTargetBranch()); assertEquals(1, status.getNumConflicts()); }
public @Test void healthCheckTestMergeDoneButOutDated() { // fake PRPrepareOp fakeUpToDate(); GeogigTransaction tx = request.getTransaction(origin.getRepo().context()); tx.command(UpdateRef.class).setName("refs/heads/" + request.getTargetBranch()) .setNewValue(origin.getRef(request.getTargetBranch()).getObjectId()); tx.command(CheckoutOp.class).setSource(request.getTargetBranch()).call(); tx.command(ResetOp.class).setCommit(origin.getRef(request.getTargetBranch()).getObjectId()) .setMode(ResetMode.HARD).call(); ObjectId localRemoteCommit = clone.getRef(request.getRemoteBranch()).getObjectId(); RevCommit merge = tx.command(MergeOp.class).addCommit(localRemoteCommit).call() .getMergeCommit(); tx.command(UpdateRef.class).setName(request.getMergeRef()).setNewValue(merge.getId()) .call(); origin.checkout("master").insert(TestData.line2).add().commit("ahead commit"); PRStatus status = origin.getRepo().command(PRHealthCheckOp.class).setId(request.getId()) .call(); assertNotNull(status); assertEquals(request, status.getRequest()); assertEquals(Sets.newHashSet("Lines", "Points", "Polygons"), Sets.newHashSet(status.getAffectedLayers())); Optional<ObjectId> mergeCommit = status.getMergeCommit(); assertTrue(mergeCommit.toString(), mergeCommit.isPresent()); assertEquals(0, status.getCommitsBehindRemoteBranch()); assertEquals(1, status.getCommitsBehindTargetBranch()); assertEquals(0, status.getNumConflicts()); }