使用ssh的LibGit2克隆存储库:git_clone_options上的版本0无效

时间:2015-05-26 20:04:31

标签: git ssh libgit2

我提前道歉,因为我对libgit2 / git非常陌生。我试图使用ssh克隆一个git存储库,我在下面收到错误:

Error code: -1 Invalid version 0 on git_clone_options

为了隐私,我用一些任意变量替换了一些路径。我只是相信我不正确地做了这些步骤。

cred_acquire_cb(git_cred** cred, const char* url, const char* username_from_url, unsigned int allowed_types, void* payload)
{
return git_cred_ssh_key_new(cred, "git", URL, pathToPublicKey, passPhrase);
}

git_repository* repo;
git_remote** remote;
g_options.remote_callbacks.certificate_check;
g_options.remote_callbacks.credentials = cred_acquire_cb;
g_options.remote_cb_payload = pathToCopyTo;
printError(git_clone(&repo, sshURL, pathToCopyTo, &g_options));

1 个答案:

答案 0 :(得分:2)

需要明确初始化各种git_*_options结构。 (你不能只是指向未初始化的内存。)你可以很容易地使用方便的初始化器:

git_clone_options options = GIT_CLONE_OPTIONS_INIT;
options.remote_callbacks.credentials = cred_acquire_cb;

或者您可以调用一个简单的函数来为您完成:

git_clone_options options;
git_clone_init_options(&options, GIT_CLONE_OPTIONS_VERSION);