@Override public PullResponse pull(PullRequest request) throws GitException, UnauthorizedException { String remoteUri = getRemoteUri(request.getRemote()); PullCommand pullCommand = nativeGit.createPullCommand(); pullCommand .setRemote(request.getRemote()) .setRefSpec(request.getRefSpec()) .setAuthor(getLocalCommitter()) .setRemoteUri(remoteUri) .setTimeout(request.getTimeout()); try { executeRemoteCommand(pullCommand); } catch (GitException exception) { if (noInitCommitWhenPullErrorPattern.matcher(exception.getMessage()).find()) { throw new GitException( exception.getMessage(), ErrorCodes.NO_COMMITTER_NAME_OR_EMAIL_DEFINED); } else if ("Unable get private ssh key".equals(exception.getMessage())) { throw new GitException(exception.getMessage(), ErrorCodes.UNABLE_GET_PRIVATE_SSH_KEY); } else if (("Auto-merging file\nCONFLICT (content): Merge conflict in file\n" + "Automatic merge failed; fix conflicts and then commit the result.\n") .equals(exception.getMessage())) { throw new GitException(exception.getMessage(), ErrorCodes.MERGE_CONFLICT); } else { throw exception; } } return pullCommand.getPullResponse(); }
@Override public PullResponse pull(PullRequest request) throws GitException, UnauthorizedException { ensureExistenceRepoRootInWorkingDirectory(); String remoteUri = getRemoteUri(request.getRemote()); PullCommand pullCommand = nativeGit.createPullCommand(); pullCommand .setRemote(request.getRemote()) .setRefSpec(request.getRefSpec()) .setAuthor(getLocalCommitter()) .setRemoteUri(remoteUri) .setTimeout(request.getTimeout()); executeRemoteCommand(pullCommand); return pullCommand.getPullResponse(); }