@Override protected TransferSummary _call() { checkState(remote != null, "no remote specified"); checkState(!refsToPush.isEmpty(), "no refs to push specified"); TransferSummary transferResult; try (IRemoteRepo remoteRepo = openRemote(remote)) { transferResult = callInternal(remoteRepo); checkState(transferResult != null); } return transferResult; }
private Optional<Ref> refParse(String refSpec) { return command(RefParse.class).setName(refSpec).call(); }
sendPack.setRemote(remote); sendPack.setRefs(refsToPush); sendPack.setProgressListener(getProgressListener()); TransferSummary result = sendPack.call(); System.err.println(result); return result;
private Optional<Ref> push(IRemoteRepo remoteRepo, Remote remote, Ref localRef, @Nullable String remoteRefSpec) { String localRemoteRefName; try { Repository localRepo = repository(); if (null == remoteRefSpec) { localRemoteRefName = Ref.append(Ref.REMOTES_PREFIX, remote.getName() + "/" + localRef.localName()); remoteRepo.pushNewData(localRepo, localRef, getProgressListener()); } else { localRemoteRefName = Ref.append(Ref.REMOTES_PREFIX, remote.getName() + "/" + remoteRefSpec); remoteRepo.pushNewData(localRepo, localRef, remoteRefSpec, getProgressListener()); } } catch (SynchronizationException e) { if (e.statusCode == StatusCode.NOTHING_TO_PUSH) { return Optional.absent(); } throw e; } // update the local copy of the remote ref LOGGER.info("Pushing {} to {}({})", localRef, localRemoteRefName, remoteRefSpec); Optional<Ref> updateRef = updateRef(localRef.getObjectId(), localRemoteRefName); return updateRef; }
private TransferSummary callInternal(IRemoteRepo remoteRepo) { final Remote remote = this.remote; @Nullable String localRefSpec; @Nullable String remoteRefSpec; boolean force; TransferSummary result = new TransferSummary(); for (TransferableRef ref : this.refsToPush) { localRefSpec = ref.getLocalRef(); remoteRefSpec = ref.getRemoteRef(); force = ref.isForceUpdate(); if (ref.isDelete()) { Optional<Ref> deleted = remoteRepo.deleteRef(remoteRefSpec); if (deleted.isPresent()) { RefDiff deleteResult = RefDiff.added(deleted.get()); result.add(remote.getPushURL(), deleteResult); } } else { Optional<Ref> localRef = refParse(localRefSpec); checkState(localRef.isPresent(), "RefSpec %s does not exist", localRefSpec); Optional<Ref> newRef = push(remoteRepo, remote, localRef.get(), remoteRefSpec); if (newRef.isPresent()) { RefDiff deleteResult = new RefDiff(localRef.get(), newRef.get()); result.add(remote.getPushURL(), deleteResult); } } } return result; }
sendPack.setRemote(remote); sendPack.setRefs(refsToPush); sendPack.setProgressListener(getProgressListener()); TransferSummary sendPackResult = sendPack.call(); return sendPackResult;
private Optional<Ref> push(IRemoteRepo remoteRepo, Remote remote, Ref localRef, @Nullable String remoteRefSpec) { String localRemoteRefName; try { Repository localRepo = repository(); if (null == remoteRefSpec) { localRemoteRefName = Ref.append(Ref.REMOTES_PREFIX, remote.getName() + "/" + localRef.localName()); remoteRepo.pushNewData(localRepo, localRef, getProgressListener()); } else { localRemoteRefName = Ref.append(Ref.REMOTES_PREFIX, remote.getName() + "/" + remoteRefSpec); remoteRepo.pushNewData(localRepo, localRef, remoteRefSpec, getProgressListener()); } } catch (SynchronizationException e) { if (e.statusCode == StatusCode.NOTHING_TO_PUSH) { return Optional.absent(); } throw e; } // update the local copy of the remote ref LOGGER.info("Pushing {} to {}({})", localRef, localRemoteRefName, remoteRefSpec); Optional<Ref> updateRef = updateRef(localRef.getObjectId(), localRemoteRefName); return updateRef; }
private TransferSummary callInternal(IRemoteRepo remoteRepo) { final Remote remote = this.remote; @Nullable String localRefSpec; @Nullable String remoteRefSpec; boolean force; TransferSummary sendPackResult = new TransferSummary(); for (TransferableRef ref : this.refsToPush) { localRefSpec = ref.getLocalRef(); remoteRefSpec = ref.getRemoteRef(); force = ref.isForceUpdate(); if (ref.isDelete()) { Optional<Ref> deleted = remoteRepo.deleteRef(remoteRefSpec); if (deleted.isPresent()) { RefDiff deleteResult = RefDiff.added(deleted.get()); sendPackResult.add(remote.getPushURL(), deleteResult); } } else { Optional<Ref> localRef = refParse(localRefSpec); checkState(localRef.isPresent(), "RefSpec %s does not exist", localRefSpec); Optional<Ref> newRef = push(remoteRepo, remote, localRef.get(), remoteRefSpec); if (newRef.isPresent()) { RefDiff deleteResult = new RefDiff(localRef.get(), newRef.get()); sendPackResult.add(remote.getPushURL(), deleteResult); } } } return sendPackResult; }
@Override protected TransferSummary _call() { checkState(remote != null, "no remote specified"); checkState(!refsToPush.isEmpty(), "no refs to push specified"); TransferSummary transferResult; try (IRemoteRepo remoteRepo = openRemote(remote)) { transferResult = callInternal(remoteRepo); checkState(transferResult != null); } return transferResult; }
private Optional<Ref> refParse(String refSpec) { return command(RefParse.class).setName(refSpec).call(); }
private IRemoteRepo openRemote(Remote remote) { return command(OpenRemote.class).setRemote(remote).call(); }
private IRemoteRepo openRemote(Remote remote) { return command(OpenRemote.class).setRemote(remote).call(); }
private Optional<Ref> updateRef(ObjectId objectId, String refName) { return this.command(UpdateRef.class).setNewValue(objectId).setName(refName).call(); }
private Optional<Ref> updateRef(ObjectId objectId, String refName) { return this.command(UpdateRef.class).setNewValue(objectId).setName(refName).call(); }