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

libgit2: Failed to resolve path when creating a repo

对于我正在进行的项目,我正在尝试使用 libgit2。 目前,我只是尝试使用 git_repository_init 创建一个 repo,但失败并显示以下错误消息:

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 时,很多测试总是失败并出现相同的错误:"error -1 - Failed to resolve path 'attr': Invalid argument".

libgit2 之前的代码已在 Windows XP 32 位上使用 MinGW 和 gcc 4.8.1 编译和执行。

repo_path参数git_repository_init_ext不合法因为 它包含字符 '<' '>' 。 尝试使用上述字符创建新目录,您会收到错误消息。

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

Top-level Improvements

  • We've dropped support for Windows XP. We're evil like that.