libgit2:创建存储库时无法解析路径

时间:2016-06-08 11:36:55

标签: c git libgit2

对于我正在进行的项目,我正在尝试使用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位上编译和执行。

2 个答案:

答案 0 :(得分:1)

libgit2不支持Windows XP。支持在v0.21.0 in 2014中结束:

  

顶级改进

     
      
  • 我们已经放弃了对Windows XP的支持。我们就是这样的邪恶。
  •   

答案 1 :(得分:0)

git_repository_init_ext repo_path 参数不合法,因为 它包含字符'&lt;' '&GT;' 。 尝试使用上面的字符创建新目录,并收到错误消息。