对于我正在进行的项目,我正在尝试使用libgit2。
目前,我只是尝试使用git_repository_init
创建一个仓库,但它失败并显示以下错误消息:
Error: -1/2: Failed to resolve path 'D:/Workspace/<project_name>/test/.git/': Invalid argument
代码如下:
#include <iostream>
#include "git2.h"
int main(int argc, char *argv[])
{
git_libgit2_init();
git_repository *repo;
git_repository_init_options opts = GIT_REPOSITORY_INIT_OPTIONS_INIT;
opts.flags |= GIT_REPOSITORY_INIT_MKDIR;
int err = git_repository_init_ext(&repo, "D:/Workspace/<project_name>/test", &opts);
if(err < 0)
{
const git_error *e = giterr_last();
std::cerr << "Error: " << err << "/" << e->klass << ": " << e->message << std::endl;
}
git_repository_free(repo);
git_libgit2_shutdown();
return 0;
}
仍然会创建测试目录中的.git目录但它是空的。 我尝试了相对和绝对路径以及Unix和Windows路径,但结果似乎总是相同。
此外,在执行libgit2_clar时,很多测试都会失败并且总是出现相同的错误:&#34;错误-1 - 无法解析路径&#39; attr&#39;:无效的参数&#34;。
libgit2和之前的代码已在使用MinGW和gcc 4.8.1的Windows XP 32位上编译和执行。
答案 0 :(得分:1)
libgit2不支持Windows XP。支持在v0.21.0 in 2014中结束:
顶级改进
- 我们已经放弃了对Windows XP的支持。我们就是这样的邪恶。
答案 1 :(得分:0)
git_repository_init_ext 的 repo_path 参数不合法,因为 它包含字符'&lt;' '&GT;' 。 尝试使用上面的字符创建新目录,并收到错误消息。