Commit 3fec548a989b09fc7a2c30f42b1d4fa123a8867e

Carlos Martín Nieto 2015-04-23T06:01:13

examples: adjust to the new remote API

diff --git a/examples/network/clone.c b/examples/network/clone.c
index 270bb68..37e373d 100644
--- a/examples/network/clone.c
+++ b/examples/network/clone.c
@@ -86,9 +86,9 @@ int do_clone(git_repository *repo, int argc, char **argv)
 	checkout_opts.progress_cb = checkout_progress;
 	checkout_opts.progress_payload = &pd;
 	clone_opts.checkout_opts = checkout_opts;
-	clone_opts.remote_callbacks.transfer_progress = &fetch_progress;
-	clone_opts.remote_callbacks.credentials = cred_acquire_cb;
-	clone_opts.remote_callbacks.payload = &pd;
+	clone_opts.fetch_opts.callbacks.transfer_progress = &fetch_progress;
+	clone_opts.fetch_opts.callbacks.credentials = cred_acquire_cb;
+	clone_opts.fetch_opts.callbacks.payload = &pd;
 
 	// Do the clone
 	error = git_clone(&cloned_repo, url, path, &clone_opts);
diff --git a/examples/network/fetch.c b/examples/network/fetch.c
index a4bec03..e47f5be 100644
--- a/examples/network/fetch.c
+++ b/examples/network/fetch.c
@@ -10,6 +10,7 @@
 
 struct dl_data {
 	git_remote *remote;
+	git_fetch_options *fetch_opts;
 	int ret;
 	int finished;
 };
@@ -28,7 +29,7 @@ static void *download(void *ptr)
 
 	// Connect to the remote end specifying that we want to fetch
 	// information from it.
-	if (git_remote_connect(data->remote, GIT_DIRECTION_FETCH) < 0) {
+	if (git_remote_connect(data->remote, GIT_DIRECTION_FETCH, &data->fetch_opts->callbacks) < 0) {
 		data->ret = -1;
 		goto exit;
 	}
@@ -36,7 +37,7 @@ static void *download(void *ptr)
 	// Download the packfile and index it. This function updates the
 	// amount of received data and the indexer stats which lets you
 	// inform the user about progress.
-	if (git_remote_download(data->remote, NULL) < 0) {
+	if (git_remote_download(data->remote, NULL, data->fetch_opts) < 0) {
 		data->ret = -1;
 		goto exit;
 	}
@@ -78,7 +79,7 @@ int fetch(git_repository *repo, int argc, char **argv)
 	git_remote *remote = NULL;
 	const git_transfer_progress *stats;
 	struct dl_data data;
-	git_remote_callbacks callbacks = GIT_REMOTE_CALLBACKS_INIT;
+	git_fetch_options fetch_opts = GIT_FETCH_OPTIONS_INIT;
 #ifndef _WIN32
 	pthread_t worker;
 #endif
@@ -96,13 +97,13 @@ int fetch(git_repository *repo, int argc, char **argv)
 	}
 
 	// Set up the callbacks (only update_tips for now)
-	callbacks.update_tips = &update_cb;
-	callbacks.sideband_progress = &progress_cb;
-	callbacks.credentials = cred_acquire_cb;
-	git_remote_set_callbacks(remote, &callbacks);
+	fetch_opts.callbacks.update_tips = &update_cb;
+	fetch_opts.callbacks.sideband_progress = &progress_cb;
+	fetch_opts.callbacks.credentials = cred_acquire_cb;
 
 	// Set up the information for the background worker thread
 	data.remote = remote;
+	data.fetch_opts = &fetch_opts;
 	data.ret = 0;
 	data.finished = 0;
 
@@ -156,7 +157,7 @@ int fetch(git_repository *repo, int argc, char **argv)
 	// right commits. This may be needed even if there was no packfile
 	// to download, which can happen e.g. when the branches have been
 	// changed but all the needed objects are available locally.
-	if (git_remote_update_tips(remote, NULL) < 0)
+	if (git_remote_update_tips(remote, &fetch_opts.callbacks, 1, fetch_opts.download_tags, NULL) < 0)
 		return -1;
 
 	git_remote_free(remote);
diff --git a/examples/network/ls-remote.c b/examples/network/ls-remote.c
index 5e3ade9..a260922 100644
--- a/examples/network/ls-remote.c
+++ b/examples/network/ls-remote.c
@@ -25,9 +25,8 @@ static int use_remote(git_repository *repo, char *name)
 	 * each of the remote references.
 	 */
 	callbacks.credentials = cred_acquire_cb;
-	git_remote_set_callbacks(remote, &callbacks);
 
-	error = git_remote_connect(remote, GIT_DIRECTION_FETCH);
+	error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks);
 	if (error < 0)
 		goto cleanup;
 
diff --git a/examples/remote.c b/examples/remote.c
index b756b56..e0d5a14 100644
--- a/examples/remote.c
+++ b/examples/remote.c
@@ -151,7 +151,6 @@ static int cmd_seturl(git_repository *repo, struct opts *o)
 {
 	int i, retval, push = 0;
 	char *name = NULL, *url = NULL;
-	git_remote *remote;
 
 	for (i = 0; i < o->argc; i++) {
 		char *arg = o->argv[i];
@@ -170,19 +169,12 @@ static int cmd_seturl(git_repository *repo, struct opts *o)
 	if (name == NULL || url == NULL)
 		usage("you need to specify remote and the new URL", NULL);
 
-	check_lg2(git_remote_lookup(&remote, repo, name),
-			"could not look up remote", name);
-
 	if (push)
-		retval = git_remote_set_pushurl(remote, url);
+		retval = git_remote_set_pushurl(repo, name, url);
 	else
-		retval = git_remote_set_url(remote, url);
-	check_lg2(retval, "could not set URL", url);
+		retval = git_remote_set_url(repo, name, url);
 
-	check_lg2(git_remote_save(remote),
-			"could not save remote", NULL);
-
-	git_remote_free(remote);
+	check_lg2(retval, "could not set URL", url);
 
 	return 0;
 }