diff --git a/include/git2/remote.h b/include/git2/remote.h index 54116c22e..0781bb773 100644 --- a/include/git2/remote.h +++ b/include/git2/remote.h @@ -106,21 +106,14 @@ GIT_EXTERN(int) git_remote_connect(struct git_remote *remote, int direction); */ GIT_EXTERN(int) git_remote_ls(git_remote *remote, git_headarray *refs); -/** - * Negotiate what data needs to be exchanged to synchroize the remtoe - * and local references - * - * @param remote the remote you want to negotiate with - */ -GIT_EXTERN(int) git_remote_negotiate(git_remote *remote); - /** * Download the packfile * - * The packfile is downloaded with a temporary filename, as it's final - * name is not known yet. If there was no packfile needed (all the - * objects were available locally), filename will be NULL and the - * function will return success. + * Negotiate what objects should be downloaded and download the + * packfile with those objects. The packfile is downloaded with a + * temporary filename, as it's final name is not known yet. If there + * was no packfile needed (all the objects were available locally), + * filename will be NULL and the function will return success. * * @param remote the remote to download from * @param filename where to store the temproray filename diff --git a/src/remote.c b/src/remote.c index 3ff08a21e..6ac3bc168 100644 --- a/src/remote.c +++ b/src/remote.c @@ -206,13 +206,13 @@ int git_remote_ls(git_remote *remote, git_headarray *refs) return remote->transport->ls(remote->transport, refs); } -int git_remote_negotiate(git_remote *remote) -{ - return git_fetch_negotiate(remote); -} - int git_remote_download(char **filename, git_remote *remote) { + int error; + + if ((error = git_fetch_negotiate(remote)) < 0) + return git__rethrow(error, "Error negotiating"); + return git_fetch_download_pack(filename, remote); }