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 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; }