public @Override Optional<IRemoteRepo> resolve(Remote remote, Hints remoteHints) { final String fetchURL = remote.getFetchURL(); final URI fetchURI = URI.create(fetchURL); final String scheme = fetchURI.getScheme(); Preconditions.checkNotNull(scheme, "Fetch URI doesn't declare scheme: %s", fetchURL); if (RepositoryResolver.resolverAvailableForURIScheme(scheme)) { IRemoteRepo remoteRepo = null; if (remote.getMapped()) { remoteRepo = new LocalMappedRemoteRepo(remote, fetchURI); } else { remoteRepo = new LocalRemoteRepo(remote, fetchURI); } return Optional.of(remoteRepo); } return Optional.absent(); } }
private void createFilterFile(Map<String, String> filters) { String filterBlob = ""; for (Entry<String, String> entry : filters.entrySet()) { String featurePath = entry.getKey(); String filter = entry.getValue(); filterBlob += "[" + featurePath + "]\n"; filterBlob += "type = CQL\n"; filterBlob += "filter = " + filter + "\n"; } try { localGeogig.repo.blobStore().putBlob(Blobs.SPARSE_FILTER_BLOB_KEY, filterBlob.getBytes()); Optional<Remote> remoteInfo = localGeogig.geogig.command(RemoteResolve.class) .setName(REMOTE_NAME).call(); Preconditions.checkState(remoteInfo.isPresent()); LocalMappedRemoteRepo remoteRepo; remoteRepo = spy( new LocalMappedRemoteRepo(remoteInfo.get(), remoteGeogig.envHome.toURI())); doNothing().when(remoteRepo).close(); remoteRepo.setRepository(remoteGeogig.geogig.getRepository()); localGeogig.remoteOverride.put(REMOTE_NAME, remoteRepo); } catch (Exception e) { e.printStackTrace(); throw e; } }
/** * Updates the remote ref that matches the given refspec. * * @param refspec the ref to update * @param commitId the new value of the ref * @param delete if true, the remote ref will be deleted * @return the updated ref */ @Override protected Optional<Ref> updateRemoteRef(String refspec, ObjectId commitId, boolean delete) { Optional<Ref> updatedRef = remoteRepo.command(UpdateRef.class).setName(refspec) .setNewValue(commitId).setDelete(delete).call(); if (updatedRef.isPresent()) { final Ref remoteHead = headRef().orNull(); if (remoteHead instanceof SymRef) { if (((SymRef) remoteHead).getTarget().equals(updatedRef.get().getName())) { remoteRepo.command(UpdateSymRef.class).setName(Ref.HEAD) .setNewValue(updatedRef.get().getName()).call(); RevCommit commit = remoteRepo.getCommit(commitId); remoteRepo.workingTree().updateWorkHead(commit.getTreeId()); remoteRepo.index().updateStageHead(commit.getTreeId()); } } } return updatedRef; }
private void createFilterFile(Map<String, String> filters) { String filterBlob = ""; for (Entry<String, String> entry : filters.entrySet()) { String featurePath = entry.getKey(); String filter = entry.getValue(); filterBlob += "[" + featurePath + "]\n"; filterBlob += "type = CQL\n"; filterBlob += "filter = " + filter + "\n"; } try { localGeogig.repo.blobStore().putBlob(Blobs.SPARSE_FILTER_BLOB_KEY, filterBlob.getBytes()); Optional<Remote> remoteInfo = localGeogig.geogig.command(RemoteResolve.class) .setName(REMOTE_NAME).call(); Preconditions.checkState(remoteInfo.isPresent()); LocalMappedRemoteRepo remoteRepo; remoteRepo = spy( new LocalMappedRemoteRepo(remoteInfo.get(), remoteGeogig.envHome.toURI())); doNothing().when(remoteRepo).close(); remoteRepo.setRepository(remoteGeogig.geogig.getRepository()); localGeogig.remoteOverride.put(REMOTE_NAME, remoteRepo); } catch (Exception e) { e.printStackTrace(); throw e; } }
/** * Updates the remote ref that matches the given refspec. * * @param refspec the ref to update * @param commitId the new value of the ref * @param delete if true, the remote ref will be deleted * @return the updated ref */ @Override protected Optional<Ref> updateRemoteRef(String refspec, ObjectId commitId, boolean delete) { Optional<Ref> updatedRef = remoteRepo.command(UpdateRef.class).setName(refspec) .setNewValue(commitId).setDelete(delete).call(); if (updatedRef.isPresent()) { final Ref remoteHead = headRef().orNull(); if (remoteHead instanceof SymRef) { if (((SymRef) remoteHead).getTarget().equals(updatedRef.get().getName())) { remoteRepo.command(UpdateSymRef.class).setName(Ref.HEAD) .setNewValue(updatedRef.get().getName()).call(); RevCommit commit = remoteRepo.getCommit(commitId); remoteRepo.workingTree().updateWorkHead(commit.getTreeId()); remoteRepo.index().updateStageHead(commit.getTreeId()); } } } return updatedRef; }
public @Override Optional<IRemoteRepo> resolve(Remote remote, Hints remoteHints) { try { final String fetchURL = remote.getFetchURL(); final URI fetchURI = URI.create(fetchURL); final String scheme = fetchURI.getScheme(); Preconditions.checkNotNull(scheme, "Fetch URI doesn't declare scheme: %s", fetchURL); if (RepositoryResolver.resolverAvailableForURIScheme(scheme)) { IRemoteRepo remoteRepo = null; if (remote.getMapped()) { remoteRepo = new LocalMappedRemoteRepo(remote, fetchURI); } else { remoteRepo = new LocalRemoteRepo(remote, fetchURI); } return Optional.of(remoteRepo); } } catch (Exception e) { // Invalid fetch URL Throwables.propagate(e); } return Optional.absent(); } }