remote: get rid of git_remote_negotiate There is no good reason to expose the negotiation as a different step to downloading the packfile. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
diff --git a/include/git2/remote.h b/include/git2/remote.h
index 54116c2..0781bb7 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 3ff08a2..6ac3bc1 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);
}