mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-28 13:36:17 +00:00
Removing unneeded code duplication in ls-remote.c
This commit is contained in:
parent
ac2e7dc6fb
commit
d6d523486c
@ -14,31 +14,6 @@ static int show_ref__cb(git_remote_head *head, void *payload)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int use_unnamed(git_repository *repo, const char *url)
|
||||
{
|
||||
git_remote *remote = NULL;
|
||||
int error;
|
||||
|
||||
// Create an instance of a remote from the URL. The transport to use
|
||||
// is detected from the URL
|
||||
error = git_remote_create_inmemory(&remote, repo, NULL, url);
|
||||
if (error < 0)
|
||||
goto cleanup;
|
||||
|
||||
// When connecting, the underlying code needs to know wether we
|
||||
// want to push or fetch
|
||||
error = git_remote_connect(remote, GIT_DIRECTION_FETCH);
|
||||
if (error < 0)
|
||||
goto cleanup;
|
||||
|
||||
// With git_remote_ls we can retrieve the advertised heads
|
||||
error = git_remote_ls(remote, &show_ref__cb, NULL);
|
||||
|
||||
cleanup:
|
||||
git_remote_free(remote);
|
||||
return error;
|
||||
}
|
||||
|
||||
static int use_remote(git_repository *repo, char *name)
|
||||
{
|
||||
git_remote *remote = NULL;
|
||||
@ -46,8 +21,12 @@ static int use_remote(git_repository *repo, char *name)
|
||||
|
||||
// Find the remote by name
|
||||
error = git_remote_load(&remote, repo, name);
|
||||
if (error < 0)
|
||||
goto cleanup;
|
||||
if (error < 0) {
|
||||
error = git_remote_create_inmemory(&remote, repo, NULL, name);
|
||||
if (error < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
||||
error = git_remote_connect(remote, GIT_DIRECTION_FETCH);
|
||||
if (error < 0)
|
||||
@ -72,12 +51,7 @@ int ls_remote(git_repository *repo, int argc, char **argv)
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
/* If there's a ':' in the name, assume it's an URL */
|
||||
if (strchr(argv[1], ':') != NULL) {
|
||||
error = use_unnamed(repo, argv[1]);
|
||||
} else {
|
||||
error = use_remote(repo, argv[1]);
|
||||
}
|
||||
error = use_remote(repo, argv[1]);
|
||||
|
||||
return error;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user