summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/git2/remote.h17
-rw-r--r--src/remote.c10
2 files changed, 10 insertions, 17 deletions
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
@@ -107,20 +107,13 @@ 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);
}