mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-30 22:24:56 +00:00
examples: adjust to the new remote API
This commit is contained in:
parent
35a8a8c546
commit
3fec548a98
@ -86,9 +86,9 @@ int do_clone(git_repository *repo, int argc, char **argv)
|
|||||||
checkout_opts.progress_cb = checkout_progress;
|
checkout_opts.progress_cb = checkout_progress;
|
||||||
checkout_opts.progress_payload = &pd;
|
checkout_opts.progress_payload = &pd;
|
||||||
clone_opts.checkout_opts = checkout_opts;
|
clone_opts.checkout_opts = checkout_opts;
|
||||||
clone_opts.remote_callbacks.transfer_progress = &fetch_progress;
|
clone_opts.fetch_opts.callbacks.transfer_progress = &fetch_progress;
|
||||||
clone_opts.remote_callbacks.credentials = cred_acquire_cb;
|
clone_opts.fetch_opts.callbacks.credentials = cred_acquire_cb;
|
||||||
clone_opts.remote_callbacks.payload = &pd;
|
clone_opts.fetch_opts.callbacks.payload = &pd;
|
||||||
|
|
||||||
// Do the clone
|
// Do the clone
|
||||||
error = git_clone(&cloned_repo, url, path, &clone_opts);
|
error = git_clone(&cloned_repo, url, path, &clone_opts);
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
struct dl_data {
|
struct dl_data {
|
||||||
git_remote *remote;
|
git_remote *remote;
|
||||||
|
git_fetch_options *fetch_opts;
|
||||||
int ret;
|
int ret;
|
||||||
int finished;
|
int finished;
|
||||||
};
|
};
|
||||||
@ -28,7 +29,7 @@ static void *download(void *ptr)
|
|||||||
|
|
||||||
// Connect to the remote end specifying that we want to fetch
|
// Connect to the remote end specifying that we want to fetch
|
||||||
// information from it.
|
// 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;
|
data->ret = -1;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
@ -36,7 +37,7 @@ static void *download(void *ptr)
|
|||||||
// Download the packfile and index it. This function updates the
|
// Download the packfile and index it. This function updates the
|
||||||
// amount of received data and the indexer stats which lets you
|
// amount of received data and the indexer stats which lets you
|
||||||
// inform the user about progress.
|
// 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;
|
data->ret = -1;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
@ -78,7 +79,7 @@ int fetch(git_repository *repo, int argc, char **argv)
|
|||||||
git_remote *remote = NULL;
|
git_remote *remote = NULL;
|
||||||
const git_transfer_progress *stats;
|
const git_transfer_progress *stats;
|
||||||
struct dl_data data;
|
struct dl_data data;
|
||||||
git_remote_callbacks callbacks = GIT_REMOTE_CALLBACKS_INIT;
|
git_fetch_options fetch_opts = GIT_FETCH_OPTIONS_INIT;
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
pthread_t worker;
|
pthread_t worker;
|
||||||
#endif
|
#endif
|
||||||
@ -96,13 +97,13 @@ int fetch(git_repository *repo, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set up the callbacks (only update_tips for now)
|
// Set up the callbacks (only update_tips for now)
|
||||||
callbacks.update_tips = &update_cb;
|
fetch_opts.callbacks.update_tips = &update_cb;
|
||||||
callbacks.sideband_progress = &progress_cb;
|
fetch_opts.callbacks.sideband_progress = &progress_cb;
|
||||||
callbacks.credentials = cred_acquire_cb;
|
fetch_opts.callbacks.credentials = cred_acquire_cb;
|
||||||
git_remote_set_callbacks(remote, &callbacks);
|
|
||||||
|
|
||||||
// Set up the information for the background worker thread
|
// Set up the information for the background worker thread
|
||||||
data.remote = remote;
|
data.remote = remote;
|
||||||
|
data.fetch_opts = &fetch_opts;
|
||||||
data.ret = 0;
|
data.ret = 0;
|
||||||
data.finished = 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
|
// right commits. This may be needed even if there was no packfile
|
||||||
// to download, which can happen e.g. when the branches have been
|
// to download, which can happen e.g. when the branches have been
|
||||||
// changed but all the needed objects are available locally.
|
// 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;
|
return -1;
|
||||||
|
|
||||||
git_remote_free(remote);
|
git_remote_free(remote);
|
||||||
|
@ -25,9 +25,8 @@ static int use_remote(git_repository *repo, char *name)
|
|||||||
* each of the remote references.
|
* each of the remote references.
|
||||||
*/
|
*/
|
||||||
callbacks.credentials = cred_acquire_cb;
|
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)
|
if (error < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
@ -151,7 +151,6 @@ static int cmd_seturl(git_repository *repo, struct opts *o)
|
|||||||
{
|
{
|
||||||
int i, retval, push = 0;
|
int i, retval, push = 0;
|
||||||
char *name = NULL, *url = NULL;
|
char *name = NULL, *url = NULL;
|
||||||
git_remote *remote;
|
|
||||||
|
|
||||||
for (i = 0; i < o->argc; i++) {
|
for (i = 0; i < o->argc; i++) {
|
||||||
char *arg = o->argv[i];
|
char *arg = o->argv[i];
|
||||||
@ -170,20 +169,13 @@ static int cmd_seturl(git_repository *repo, struct opts *o)
|
|||||||
if (name == NULL || url == NULL)
|
if (name == NULL || url == NULL)
|
||||||
usage("you need to specify remote and the new 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)
|
if (push)
|
||||||
retval = git_remote_set_pushurl(remote, url);
|
retval = git_remote_set_pushurl(repo, name, url);
|
||||||
else
|
else
|
||||||
retval = git_remote_set_url(remote, url);
|
retval = git_remote_set_url(repo, name, url);
|
||||||
|
|
||||||
check_lg2(retval, "could not set URL", url);
|
check_lg2(retval, "could not set URL", url);
|
||||||
|
|
||||||
check_lg2(git_remote_save(remote),
|
|
||||||
"could not save remote", NULL);
|
|
||||||
|
|
||||||
git_remote_free(remote);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user