public @Override <T extends AbstractGeoGigOp<?>> T command(Class<T> commandClass) { if (SendPackOp.class.equals(commandClass)) { // invoked when a local repo calls fetch for an http remote return commandClass.cast(new HttpSendPackClient(this)); } else if (ReceivePackOp.class.equals(commandClass)) { // invoked when a local repo calls push on an http remote return commandClass.cast(new HttpReceivePackClient(this)); } return super.command(commandClass); } }
@Override public void pushNewData(Repository local, Ref ref, ProgressListener progress) throws SynchronizationException { pushNewData(local, ref, ref.getName(), progress); }
/** * Returns the appropriate commit traverser to use for the push operation. * * @param remoteRef the remote ref to push to * @return the {@link CommitTraverser} to use. */ protected CommitTraverser getPushTraverser(Repository local, Optional<Ref> remoteRef) throws SynchronizationException { RepositoryWrapper localWrapper = new LocalRepositoryWrapper(local); RepositoryWrapper remoteWrapper = getRemoteWrapper(); CommitTraverser traverser; if (remoteWrapper.getRepoDepth().isPresent()) { Optional<Integer> pushDepth = Optional.absent(); if (!remoteRef.isPresent()) { pushDepth = remoteWrapper.getRepoDepth(); } traverser = new ShallowCommitTraverser(localWrapper, remoteWrapper, pushDepth); } else if (local.getDepth().isPresent()) { traverser = new ShallowFullCommitTraverser(localWrapper, remoteWrapper); } else { traverser = new FullCommitTraverser(localWrapper, remoteWrapper); } return traverser; }
/** * Returns the appropriate commit traverser to use for the fetch operation. * * @param fetchLimit the fetch limit to use * @return the {@link CommitTraverser} to use. */ protected CommitTraverser getFetchTraverser(Repository local, Optional<Integer> fetchLimit) { RepositoryWrapper localWrapper = new LocalRepositoryWrapper(local); RepositoryWrapper remoteWrapper = getRemoteWrapper(); CommitTraverser traverser; if (localWrapper.getRepoDepth().isPresent()) { traverser = new ShallowCommitTraverser(remoteWrapper, localWrapper, fetchLimit); } else if (remoteWrapper.getRepoDepth().isPresent()) { traverser = new ShallowFullCommitTraverser(remoteWrapper, localWrapper); } else { traverser = new FullCommitTraverser(remoteWrapper, localWrapper); } return traverser; }
/** * Returns the appropriate commit traverser to use for the fetch operation. * * @param fetchLimit the fetch limit to use * @return the {@link CommitTraverser} to use. */ protected CommitTraverser getFetchTraverser(Repository local, Optional<Integer> fetchLimit) { RepositoryWrapper localWrapper = new LocalRepositoryWrapper(local); RepositoryWrapper remoteWrapper = getRemoteWrapper(); CommitTraverser traverser; if (localWrapper.getRepoDepth().isPresent()) { traverser = new ShallowCommitTraverser(remoteWrapper, localWrapper, fetchLimit); } else if (remoteWrapper.getRepoDepth().isPresent()) { traverser = new ShallowFullCommitTraverser(remoteWrapper, localWrapper); } else { traverser = new FullCommitTraverser(remoteWrapper, localWrapper); } return traverser; }
@Override public void pushNewData(Repository local, Ref ref, ProgressListener progress) throws SynchronizationException { pushNewData(local, ref, ref.getName(), progress); }
/** * Returns the appropriate commit traverser to use for the push operation. * * @param remoteRef the remote ref to push to * @return the {@link CommitTraverser} to use. */ protected CommitTraverser getPushTraverser(Repository local, Optional<Ref> remoteRef) throws SynchronizationException { RepositoryWrapper localWrapper = new LocalRepositoryWrapper(local); RepositoryWrapper remoteWrapper = getRemoteWrapper(); CommitTraverser traverser; if (remoteWrapper.getRepoDepth().isPresent()) { Optional<Integer> pushDepth = Optional.absent(); if (!remoteRef.isPresent()) { pushDepth = remoteWrapper.getRepoDepth(); } traverser = new ShallowCommitTraverser(localWrapper, remoteWrapper, pushDepth); } else if (local.getDepth().isPresent()) { traverser = new ShallowFullCommitTraverser(localWrapper, remoteWrapper); } else { traverser = new FullCommitTraverser(localWrapper, remoteWrapper); } return traverser; }