/** * @param pathFilter the path filter for the conflicts * @return the number of conflicts that match the path filter, or the total number of conflicts * if a path filter was not specified */ @Override public long countConflicted(@Nullable String pathFilter) { return conflictsDb.getCountByPrefix(null, pathFilter); }
/** * @param pathFilter the path filter for the conflicts * @return the number of conflicts that match the path filter, or the total number of conflicts * if a path filter was not specified */ @Override public long countConflicted(@Nullable String pathFilter) { return conflictsDb.getCountByPrefix(null, pathFilter); }
@Override public long getCountByPrefix(@Nullable String namespace, @Nullable String treePath) { return database.getCountByPrefix(txNamespace, treePath); }
@Override public long getCountByPrefix(@Nullable String namespace, @Nullable String treePath) { return database.getCountByPrefix(txNamespace, treePath); }
@Override public long countConflicted(String pathFilter) { return conflictsDatabase().getCountByPrefix(null, null); }
@Override public long countConflicted(String pathFilter) { return conflictsDatabase().getCountByPrefix(null, null); }
private CheckoutException buildConflictsException(final ConflictsDatabase conflictsDatabase) { final long conflictCount = conflictsDatabase.getCountByPrefix(null, null); Iterator<Conflict> conflicts = Iterators .limit(conflictsDatabase.getByPrefix(branchOrCommit, null), 25); StringBuilder msg = new StringBuilder(); while (conflicts.hasNext()) { Conflict conflict = conflicts.next(); msg.append("error: " + conflict.getPath() + " needs merge.\n"); } if (conflictCount > 25) { msg.append(String.format("and %,d more.\n", (conflictCount - 25))); } msg.append("You need to resolve your index first.\n"); return new CheckoutException(msg.toString(), StatusCode.UNMERGED_PATHS); } }
private CheckoutException buildConflictsException(final ConflictsDatabase conflictsDatabase) { final long conflictCount = conflictsDatabase.getCountByPrefix(null, null); Iterator<Conflict> conflicts = Iterators .limit(conflictsDatabase.getByPrefix(branchOrCommit, null), 25); StringBuilder msg = new StringBuilder(); while (conflicts.hasNext()) { Conflict conflict = conflicts.next(); msg.append("error: " + conflict.getPath() + " needs merge.\n"); } if (conflictCount > 25) { msg.append(String.format("and %,d more.\n", (conflictCount - 25))); } msg.append("You need to resolve your index first.\n"); return new CheckoutException(msg.toString(), StatusCode.UNMERGED_PATHS); } }
@Override protected Long _call() { long count = 0L; if (repository().isOpen()) { count = conflictsDatabase().getCountByPrefix(null, null); } return Long.valueOf(count); }
@Override protected Long _call() { long count = 0L; if (repository().isOpen()) { count = conflictsDatabase().getCountByPrefix(null, null); } return Long.valueOf(count); }
@Test public void testRemoveByPrefix() { final String ns = UUID.randomUUID().toString(); add(ns, c1, c2, c3); add(ns, b1, b2, b3); add(null, c1, c2, c3); assertEquals(3, conflicts.getCountByPrefix(null, "Rivers")); assertEquals(3, conflicts.getCountByPrefix(ns, "Rivers")); conflicts.removeByPrefix(null, c2.getPath()); assertEquals(2, conflicts.getCountByPrefix(null, "Rivers")); assertEquals(3, conflicts.getCountByPrefix(ns, "Rivers")); assertFalse(conflicts.getConflict(null, c2.getPath()).isPresent()); assertEquals(3, conflicts.getCountByPrefix(ns, "buildings")); conflicts.removeByPrefix(ns, "buildings"); assertEquals(0, conflicts.getCountByPrefix(ns, "buildings")); }
@Test public void testGetCountByPrefix() { List<Conflict> rivers = createConflicts("rivers", 1555); List<Conflict> highways = createConflicts("roads/highways", 77); conflicts.addConflicts(null, rivers); conflicts.addConflicts("someTxId", highways); // create also conflict entries for the tree objects conflicts.addConflict(null, createTestConflict("rivers")); conflicts.addConflict("someTxId", createTestConflict("roads/highways")); assertEquals(0, conflicts.getCountByPrefix("someTxId", "rivers")); assertEquals(1 + rivers.size(), conflicts.getCountByPrefix(null, "rivers")); assertEquals(0, conflicts.getCountByPrefix(null, "highways")); assertEquals(1 + highways.size(), conflicts.getCountByPrefix("someTxId", "roads/highways")); }
@Test public void testGetCountByPrefix() { List<Conflict> rivers = createConflicts("rivers", 1555); List<Conflict> highways = createConflicts("roads/highways", 77); conflicts.addConflicts(null, rivers); conflicts.addConflicts("someTxId", highways); // create also conflict entries for the tree objects conflicts.addConflict(null, createTestConflict("rivers")); conflicts.addConflict("someTxId", createTestConflict("roads/highways")); assertEquals(0, conflicts.getCountByPrefix("someTxId", "rivers")); assertEquals(1 + rivers.size(), conflicts.getCountByPrefix(null, "rivers")); assertEquals(0, conflicts.getCountByPrefix(null, "highways")); assertEquals(1 + highways.size(), conflicts.getCountByPrefix("someTxId", "roads/highways")); }
@Test public void testRemoveByPrefix() { final String ns = UUID.randomUUID().toString(); add(ns, c1, c2, c3); add(ns, b1, b2, b3); add(null, c1, c2, c3); assertEquals(3, conflicts.getCountByPrefix(null, "Rivers")); assertEquals(3, conflicts.getCountByPrefix(ns, "Rivers")); conflicts.removeByPrefix(null, c2.getPath()); assertEquals(2, conflicts.getCountByPrefix(null, "Rivers")); assertEquals(3, conflicts.getCountByPrefix(ns, "Rivers")); assertFalse(conflicts.getConflict(null, c2.getPath()).isPresent()); assertEquals(3, conflicts.getCountByPrefix(ns, "buildings")); conflicts.removeByPrefix(ns, "buildings"); assertEquals(0, conflicts.getCountByPrefix(ns, "buildings")); }
@Test public void testRemoveConflictsIterableNS() { final String ns = UUID.randomUUID().toString(); add(ns, c1, c2, c3); add(null, c1, c2, c3); conflicts.removeConflicts(ns, ImmutableList.of(c3.getPath(), c2.getPath())); assertTrue(conflicts.getConflict(ns, c1.getPath()).isPresent()); assertFalse(conflicts.getConflict(ns, c2.getPath()).isPresent()); assertFalse(conflicts.getConflict(ns, c3.getPath()).isPresent()); assertEquals(3, conflicts.getCountByPrefix(null, null)); }
@Test public void testRemoveConflictsIterableNS() { final String ns = UUID.randomUUID().toString(); add(ns, c1, c2, c3); add(null, c1, c2, c3); conflicts.removeConflicts(ns, ImmutableList.of(c3.getPath(), c2.getPath())); assertTrue(conflicts.getConflict(ns, c1.getPath()).isPresent()); assertFalse(conflicts.getConflict(ns, c2.getPath()).isPresent()); assertFalse(conflicts.getConflict(ns, c3.getPath()).isPresent()); assertEquals(3, conflicts.getCountByPrefix(null, null)); }
@Test public void testRemoveConflictsIterableDefaultNS() { final String ns = UUID.randomUUID().toString(); add(ns, c1, c2, c3); add(null, c1, c2, c3); conflicts.removeConflicts(null, ImmutableList.of(c3.getPath(), c2.getPath())); assertTrue(conflicts.getConflict(null, c1.getPath()).isPresent()); assertFalse(conflicts.getConflict(null, c2.getPath()).isPresent()); assertFalse(conflicts.getConflict(null, c3.getPath()).isPresent()); assertEquals(3, conflicts.getCountByPrefix(ns, null)); }
@Test public void testRemoveConflictsIterableDefaultNS() { final String ns = UUID.randomUUID().toString(); add(ns, c1, c2, c3); add(null, c1, c2, c3); conflicts.removeConflicts(null, ImmutableList.of(c3.getPath(), c2.getPath())); assertTrue(conflicts.getConflict(null, c1.getPath()).isPresent()); assertFalse(conflicts.getConflict(null, c2.getPath()).isPresent()); assertFalse(conflicts.getConflict(null, c3.getPath()).isPresent()); assertEquals(3, conflicts.getCountByPrefix(ns, 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)); }