繁体   English   中英

如何使用libgit2初始化git存储库

[英]How to initialise a git repository with libgit2

在Windows XP,32位机器上,我使用了克隆了libgit2存储库

git clone git://github.com/libgit2/libgit2.git trunk

然后我使用以下命令从trunk_build_debug配置mingw:

cmake ../trunk -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-g 

用它构建它

make

有了这个新构建的库,我正在尝试创建一个新的存储库。 所以我正在使用

    error_code = git_repository_init( &repo, path, 0 );
    if ( error_code != 0 )
    {
        const git_error * error = giterr_last();
       /* the text representation:
        ( error == NULL || error->message == NULL ? 
        "(no description)" : 
        error->message )
        */
    }

首次尝试时失败并显示错误消息:

Git错误-1:全局文件'.config / git / config'不存在:系统找不到指定的文件。

创建了.git目录,我可以使用git status来查询它。 另外,我在Program Files / git中安装了git,它运行得很好。 用户目录中不存在提到的文件,即为true。 我不高兴,因为我无法检查返回的错误代码(错误可能是“真实的”)。

所以我在D:\\ Documents and Settings \\ User Name.config \\ git \\ config中创建了一个空文件。再次创建.git目录,但我得到相同的-1错误代码。 这次giterr_last()返回NULL。

在调试器中跟踪代码似乎表明库对我的空文件不满意。

但是,我认为这表明我做错了。 有初始化方法吗? 我是否需要创建文件并使用git_config_函数将库指向它?

顺便说一句,这是错误的地方吗? 是否有专门的论坛,我应该问这个问题?

谢谢


这是调用失败的后向跟踪: pastebin似乎无法解析.git目录中的配置文件(未在跟踪中显示的是失败的'config_parse()')。


我在libgit2中打开了一个问题

要创建新的存储库,应该依赖于git_repository_init() 有关更多信息,您可以查看标题测试

当存储库已经存在时,应该使用git_repository_open()

是否有专门的论坛,我应该问这个问题?

可以在StackOverflow上询问与编程相关的问题。 除此之外,一些libgit2开发人员在irc.freenode.net的#libgit2频道中闲逛。 但是,当您遇到错误时,建议将它们提交给问题跟踪器

更新

  • 过去在Windows上检测配置文件的方式存在一些问题。 以及一些尝试修复它们。 有关此问题的一些背景,请参阅此问题
  • 除了探测的复杂性之外,一些用户可能希望明确地为其文件提供备用位置。 这个拉动请求就是这个角度。

考虑到在调试libgit2时发现了什么,现在可能是在问题跟踪器中打开错误的好时机。 请注意可能有两个问题:探测问题和空配置问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM