mirror of
https://git.proxmox.com/git/libgit2
synced 2025-06-20 00:01:10 +00:00
remote: add a convenience 'fetch' function.
This commit is contained in:
parent
d19870d947
commit
fe3a40a4ff
@ -310,6 +310,17 @@ GIT_EXTERN(void) git_remote_free(git_remote *remote);
|
||||
*/
|
||||
GIT_EXTERN(int) git_remote_update_tips(git_remote *remote);
|
||||
|
||||
/**
|
||||
* Download new data and update tips
|
||||
*
|
||||
* Convenience function to connect to a remote, download the data,
|
||||
* disconnect and update the remote-tracking branches.
|
||||
*
|
||||
* @param remote the remote to fetch from
|
||||
* @return 0 or an error code
|
||||
*/
|
||||
GIT_EXTERN(int) git_remote_fetch(git_remote *remote);
|
||||
|
||||
/**
|
||||
* Return whether a string is a valid remote URL
|
||||
*
|
||||
|
22
src/clone.c
22
src/clone.c
@ -350,24 +350,6 @@ on_error:
|
||||
return error;
|
||||
}
|
||||
|
||||
static int do_fetch(git_remote *origin)
|
||||
{
|
||||
int retcode;
|
||||
|
||||
/* Connect and download everything */
|
||||
if ((retcode = git_remote_connect(origin, GIT_DIRECTION_FETCH)) < 0)
|
||||
return retcode;
|
||||
|
||||
if ((retcode = git_remote_download(origin)) < 0)
|
||||
return retcode;
|
||||
|
||||
/* Create "origin/foo" branches for all remote branches */
|
||||
if ((retcode = git_remote_update_tips(origin)) < 0)
|
||||
return retcode;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setup_remotes_and_fetch(
|
||||
git_repository *repo,
|
||||
const char *url,
|
||||
@ -391,7 +373,7 @@ static int setup_remotes_and_fetch(
|
||||
((retcode = git_remote_add_fetch(origin, "refs/tags/*:refs/tags/*")) < 0))
|
||||
goto on_error;
|
||||
|
||||
if ((retcode = do_fetch(origin)) < 0)
|
||||
if ((retcode = git_remote_fetch(origin)) < 0)
|
||||
goto on_error;
|
||||
|
||||
/* Point HEAD to the requested branch */
|
||||
@ -459,7 +441,7 @@ int git_clone_into(git_repository *repo, git_remote *remote, git_checkout_opts *
|
||||
old_fetchhead = git_remote_update_fetchhead(remote);
|
||||
git_remote_set_update_fetchhead(remote, 0);
|
||||
|
||||
if ((error = do_fetch(remote)) < 0)
|
||||
if ((error = git_remote_fetch(remote)) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (branch)
|
||||
|
18
src/remote.c
18
src/remote.c
@ -767,6 +767,24 @@ int git_remote_download(git_remote *remote)
|
||||
return git_fetch_download_pack(remote);
|
||||
}
|
||||
|
||||
int git_remote_fetch(git_remote *remote)
|
||||
{
|
||||
int error;
|
||||
|
||||
/* Connect and download everything */
|
||||
if ((error = git_remote_connect(remote, GIT_DIRECTION_FETCH)) < 0)
|
||||
return error;
|
||||
|
||||
if ((error = git_remote_download(remote)) < 0)
|
||||
return error;
|
||||
|
||||
/* We don't need to be connected anymore */
|
||||
git_remote_disconnect(remote);
|
||||
|
||||
/* Create "remote/foo" branches for all remote branches */
|
||||
return git_remote_update_tips(remote);
|
||||
}
|
||||
|
||||
static int remote_head_for_fetchspec_src(git_remote_head **out, git_vector *update_heads, const char *fetchspec_src)
|
||||
{
|
||||
unsigned int i;
|
||||
|
Loading…
Reference in New Issue
Block a user