Me disculpo de antemano porque soy extremadamente nuevo en libgit2 / git. Estaba intentando clonar un repository de git usando ssh, y estoy obteniendo un error a continuación:
Error code: -1 Invalid version 0 on git_clone_options
Reemplacé algunas routes con variables arbitrarias para la privacidad. Solo creo que estoy haciendo los pasos incorrectamente.
cnetworking_acquire_cb(git_cnetworking** cnetworking, const char* url, const char* username_from_url, unsigned int allowed_types, void* payload) { return git_cnetworking_ssh_key_new(cnetworking, "git", URL, pathToPublicKey, passPhrase); } git_repository* repo; git_remote** remote; g_options.remote_callbacks.certificate_check; g_options.remote_callbacks.cnetworkingentials = cnetworking_acquire_cb; g_options.remote_cb_payload = pathToCopyTo; printError(git_clone(&repo, sshURL, pathToCopyTo, &g_options));
Las diversas estructuras de git_*_options
deben inicializarse explícitamente. (No puede tenerlos simplemente apuntando a la memory no inicializada). Puede hacerlo con bastante facilidad, ya sea usando el práctico inicializador:
git_clone_options options = GIT_CLONE_OPTIONS_INIT; options.remote_callbacks.cnetworkingentials = cnetworking_acquire_cb;
O puede llamar a una function simple para que lo haga por usted:
git_clone_options options; git_clone_init_options(&options, GIT_CLONE_OPTIONS_VERSION);