/** * Pass through to {@link StagingDatabase}, replacing the namespace with the transaction * namespace. */ @Override public boolean hasConflicts(String namespace) { return database.hasConflicts(txNamespace); }
/** * Pass through to {@link StagingDatabase}, replacing the namespace with the transaction * namespace. */ @Override public boolean hasConflicts(String namespace) { return database.hasConflicts(txNamespace); }
@Override protected Boolean _call() { final Optional<URI> repoUrl = command(ResolveGeogigURI.class).call(); Boolean hasConflicts = Boolean.FALSE; if (repoUrl.isPresent()) { boolean conflicts = conflictsDatabase().hasConflicts(null); hasConflicts = Boolean.valueOf(conflicts); } return hasConflicts; } }
@Override protected Boolean _call() { final Optional<URI> repoUrl = command(ResolveGeogigURI.class).call(); Boolean hasConflicts = Boolean.FALSE; if (repoUrl.isPresent()) { boolean conflicts = conflictsDatabase().hasConflicts(null); hasConflicts = Boolean.valueOf(conflicts); } return hasConflicts; } }
StageState(Context context, PersistedIterable<String> conflictsCleanup, RevTree currentIndexHead, ProgressListener progress) { this.context = context; this.conflictsDb = context.conflictsDatabase(); this.conflictsCleanup = conflictsCleanup; this.currentIndexHead = currentIndexHead; this.updateTree = context.command(UpdateTree.class).setRoot(currentIndexHead); this.progress = progress; this.hasConflicts = conflictsDb.hasConflicts(null); }
@Test public void testHasConflicts() { final String ns = UUID.randomUUID().toString(); assertFalse(conflicts.hasConflicts(null)); assertFalse(conflicts.hasConflicts(ns)); add(null, c1); add(ns, c2, c3); assertTrue(conflicts.hasConflicts(null)); assertTrue(conflicts.hasConflicts(ns)); assertFalse(conflicts.hasConflicts(UUID.randomUUID().toString())); }
@Test public void testHasConflicts() { final String ns = UUID.randomUUID().toString(); assertFalse(conflicts.hasConflicts(null)); assertFalse(conflicts.hasConflicts(ns)); add(null, c1); add(ns, c2, c3); assertTrue(conflicts.hasConflicts(null)); assertTrue(conflicts.hasConflicts(ns)); assertFalse(conflicts.hasConflicts(UUID.randomUUID().toString())); }
@Test public void testRemoveConflicts() { final String ns = UUID.randomUUID().toString(); add(null, c1, c3); add(ns, c2, c3); assertTrue(conflicts.hasConflicts(null)); assertTrue(conflicts.hasConflicts(ns)); conflicts.removeConflicts(null); assertFalse(conflicts.hasConflicts(null)); assertTrue(conflicts.hasConflicts(ns)); add(null, c1); conflicts.removeConflicts(ns); assertTrue(conflicts.hasConflicts(null)); assertFalse(conflicts.hasConflicts(ns)); }
@Test public void testRemoveConflicts() { final String ns = UUID.randomUUID().toString(); add(null, c1, c3); add(ns, c2, c3); assertTrue(conflicts.hasConflicts(null)); assertTrue(conflicts.hasConflicts(ns)); conflicts.removeConflicts(null); assertFalse(conflicts.hasConflicts(null)); assertTrue(conflicts.hasConflicts(ns)); add(null, c1); conflicts.removeConflicts(ns); assertTrue(conflicts.hasConflicts(null)); assertFalse(conflicts.hasConflicts(ns)); }
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; } }
final boolean hasConflicts = conflictsDatabase().hasConflicts(null); Preconditions.checkState(!hasConflicts || abort, "Cannot run operation while merge conflicts exist.");
private CheckoutResult branchCheckout() throws CheckoutException { CheckoutResult checkoutResult = new CheckoutResult(); final ConflictsDatabase conflictsDatabase = conflictsDatabase(); final boolean hasConflicts = conflictsDatabase.hasConflicts(null); if (hasConflicts && !force) { throw buildConflictsException(conflictsDatabase);
private CheckoutResult branchCheckout() throws CheckoutException { CheckoutResult result = new CheckoutResult(); final ConflictsDatabase conflictsDatabase = conflictsDatabase(); final boolean hasConflicts = conflictsDatabase.hasConflicts(null); if (hasConflicts && !force) { throw buildConflictsException(conflictsDatabase);
final boolean hasConflicts = conflictsDatabase().hasConflicts(null); checkState(!hasConflicts || abort, "Cannot run operation while merge conflicts exist.");
@Test public void testRemoveConflict() { final String ns = UUID.randomUUID().toString(); add(null, c1, c3); add(ns, c2, c3); conflicts.removeConflict(ns, c1.getPath()); assertEquals(c1, conflicts.getConflict(null, c1.getPath()).get()); conflicts.removeConflict(null, c1.getPath()); assertFalse(conflicts.getConflict(null, c1.getPath()).isPresent()); assertFalse(conflicts.getConflict(ns, c1.getPath()).isPresent()); conflicts.removeConflict(null, c2.getPath()); assertEquals(c2, conflicts.getConflict(ns, c2.getPath()).get()); conflicts.removeConflict(ns, c2.getPath()); assertFalse(conflicts.getConflict(null, c2.getPath()).isPresent()); assertFalse(conflicts.getConflict(ns, c2.getPath()).isPresent()); assertTrue(conflicts.hasConflicts(null)); assertTrue(conflicts.hasConflicts(ns)); conflicts.removeConflict(null, c3.getPath()); assertFalse(conflicts.hasConflicts(null)); conflicts.removeConflict(ns, c3.getPath()); assertFalse(conflicts.hasConflicts(ns)); }
@Test public void testRemoveConflict() { final String ns = UUID.randomUUID().toString(); add(null, c1, c3); add(ns, c2, c3); conflicts.removeConflict(ns, c1.getPath()); assertEquals(c1, conflicts.getConflict(null, c1.getPath()).get()); conflicts.removeConflict(null, c1.getPath()); assertFalse(conflicts.getConflict(null, c1.getPath()).isPresent()); assertFalse(conflicts.getConflict(ns, c1.getPath()).isPresent()); conflicts.removeConflict(null, c2.getPath()); assertEquals(c2, conflicts.getConflict(ns, c2.getPath()).get()); conflicts.removeConflict(ns, c2.getPath()); assertFalse(conflicts.getConflict(null, c2.getPath()).isPresent()); assertFalse(conflicts.getConflict(ns, c2.getPath()).isPresent()); assertTrue(conflicts.hasConflicts(null)); assertTrue(conflicts.hasConflicts(ns)); conflicts.removeConflict(null, c3.getPath()); assertFalse(conflicts.hasConflicts(null)); conflicts.removeConflict(ns, c3.getPath()); assertFalse(conflicts.hasConflicts(ns)); }
@Test public void testInsertionAndAdditionFixesConflict() 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); 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")); } insert(points1); geogig.command(AddOp.class).call(); assertFalse(geogig.getRepository().conflictsDatabase().hasConflicts(null)); geogig.command(CommitOp.class).call(); Optional<Ref> ref = geogig.command(RefParse.class).setName(Ref.MERGE_HEAD).call(); assertFalse(ref.isPresent()); }
@Test public void testInsertionAndAdditionFixesConflict() 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); 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")); } insert(points1); geogig.command(AddOp.class).call(); assertFalse(geogig.getRepository().conflictsDatabase().hasConflicts(null)); geogig.command(CommitOp.class).call(); Optional<Ref> ref = geogig.command(RefParse.class).setName(Ref.MERGE_HEAD).call(); assertFalse(ref.isPresent()); }
@Test public void testAdditionFixesConflict() 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); 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(true); } geogig.command(AddOp.class).call(); assertFalse(geogig.getRepository().conflictsDatabase().hasConflicts(null)); geogig.command(CommitOp.class).call(); Optional<Ref> ref = geogig.command(RefParse.class).setName(Ref.MERGE_HEAD).call(); assertFalse(ref.isPresent()); }
@Test public void testAdditionFixesConflict() 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); 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(true); } geogig.command(AddOp.class).call(); assertFalse(geogig.getRepository().conflictsDatabase().hasConflicts(null)); geogig.command(CommitOp.class).call(); Optional<Ref> ref = geogig.command(RefParse.class).setName(Ref.MERGE_HEAD).call(); assertFalse(ref.isPresent()); }