use of org.locationtech.geogig.api.porcelain.CloneOp in project GeoGig by boundlessgeo.
the class CloneOpTest method testCloneWithMergeCommit.
@Test
public void testCloneWithMergeCommit() throws Exception {
// Commit several features to the remote
LinkedList<RevCommit> expectedMaster = new LinkedList<RevCommit>();
LinkedList<RevCommit> expectedBranch = new LinkedList<RevCommit>();
insertAndAdd(remoteGeogig.geogig, points1);
RevCommit commit = remoteGeogig.geogig.command(CommitOp.class).call();
expectedMaster.addFirst(commit);
expectedBranch.addFirst(commit);
insertAndAdd(remoteGeogig.geogig, points1_modified);
commit = remoteGeogig.geogig.command(CommitOp.class).call();
expectedMaster.addFirst(commit);
expectedBranch.addFirst(commit);
// Create and checkout branch1
remoteGeogig.geogig.command(BranchCreateOp.class).setAutoCheckout(true).setName("Branch1").call();
// Commit a change to branch1
insertAndAdd(remoteGeogig.geogig, points2);
RevCommit branch1commit = remoteGeogig.geogig.command(CommitOp.class).call();
expectedBranch.addFirst(branch1commit);
// Make sure Branch1 has all of the commits
Iterator<RevCommit> logs = remoteGeogig.geogig.command(LogOp.class).call();
List<RevCommit> logged = new ArrayList<RevCommit>();
for (; logs.hasNext(); ) {
logged.add(logs.next());
}
assertEquals(expectedBranch, logged);
// Checkout master and commit some changes
remoteGeogig.geogig.command(CheckoutOp.class).setSource("master").call();
insertAndAdd(remoteGeogig.geogig, lines1);
commit = remoteGeogig.geogig.command(CommitOp.class).call();
expectedMaster.addFirst(commit);
insertAndAdd(remoteGeogig.geogig, lines2);
commit = remoteGeogig.geogig.command(CommitOp.class).call();
expectedMaster.addFirst(commit);
// Make sure master has all of the commits
logs = remoteGeogig.geogig.command(LogOp.class).call();
logged = new ArrayList<RevCommit>();
for (; logs.hasNext(); ) {
logged.add(logs.next());
}
assertEquals(expectedMaster, logged);
// Merge branch1 into master
MergeReport report = remoteGeogig.geogig.command(MergeOp.class).addCommit(Suppliers.ofInstance(branch1commit.getId())).call();
expectedMaster.addFirst(report.getMergeCommit());
// Delete Branch1
// Create and checkout branch1
remoteGeogig.geogig.command(BranchDeleteOp.class).setName("Branch1").call();
// clone from the remote
CloneOp clone = clone();
clone.setRepositoryURL(remoteGeogig.envHome.getCanonicalPath()).setBranch("master").call();
// Make sure the local repository got all of the commits
logs = localGeogig.geogig.command(LogOp.class).setFirstParentOnly(true).call();
logged = new ArrayList<RevCommit>();
for (; logs.hasNext(); ) {
logged.add(logs.next());
}
assertEquals(expectedMaster, logged);
}
use of org.locationtech.geogig.api.porcelain.CloneOp in project GeoGig by boundlessgeo.
the class CloneOpTest method testCloneEmptyRepoString.
@Test
public void testCloneEmptyRepoString() throws Exception {
CloneOp clone = clone();
exception.expect(IllegalArgumentException.class);
clone.setRepositoryURL("").call();
}
Aggregations