首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LibGit2Sharp是否支持从本地文件系统克隆存储库?

LibGit2Sharp是否支持从本地文件系统克隆存储库?
EN

Stack Overflow用户
提问于 2012-11-16 15:31:16
回答 1查看 3.7K关注 0票数 4

我正在尝试从本地文件系统克隆一个git存储库:

代码语言:javascript
复制
using System;
using LibGit2Sharp;

class Program
{
    static void Main()
    {
        var sourceUrl = @"file:///c:/work/libgit2sharp";
        using (Repository.Clone(sourceUrl, "targetDir", bare: true))
        {
            Console.WriteLine("repository successfully cloned");
        }
    }
}

我得到了一个例外:

代码语言:javascript
复制
Unhandled Exception: LibGit2Sharp.LibGit2SharpException: An error was raised by libgit2. Category = Odb (Error).
Failed to find the memory window file to deregister
   at LibGit2Sharp.Core.Ensure.Success(Int32 result, Boolean allowPositiveResult) in c:\work\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line 85
   at LibGit2Sharp.Core.Proxy.git_clone_bare(String url, String workdir, git_transfer_progress_callback transfer_cb) in c:\work\libgit2sharp\LibGit2Sharp\Core\Proxy.cs:line 219
   at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, Boolean bare, Boolean checkout, TransferProgressHandler onTransferProgress, CheckoutProgressHandler onCheckoutProgress) in c:\work\libgit2sharp\LibGit2Sharp\Repository.cs:line 431
   at Program.Main() in c:\work\ConsoleApplication1\Program.cs:line 10

我还尝试了下面的源url:

代码语言:javascript
复制
var sourceUrl = @"c:\work\libgit2sharp\.git\";

并得到了另一个例外:

代码语言:javascript
复制
Unhandled Exception: LibGit2Sharp.LibGit2SharpException: An error was raised by libgit2. Category = Config (Error).
Failed to parse config file: Unexpected end of file while parsing multine var (in c:/work/ConsoleApplication1/bin/Debug/targetDir/config:23, column 0)
   at LibGit2Sharp.Core.Ensure.Success(Int32 result, Boolean allowPositiveResult) in c:\work\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line 85
   at LibGit2Sharp.Core.Proxy.git_clone_bare(String url, String workdir, git_transfer_progress_callback transfer_cb) in c:\work\libgit2sharp\LibGit2Sharp\Core\Proxy.cs:line 219
   at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, Boolean bare, Boolean checkout, TransferProgressHandler onTransferProgress, CheckoutProgressHandler onCheckoutProgress) in c:\work\libgit2sharp\LibGit2Sharp\Repository.cs:line 431
   at Program.Main() in c:\work\ConsoleApplication1\Program.cs:line 12

永远不会创建targetDir

另一方面,如果我使用HTTP传输,那么Repository.Clone方法可以很好地工作:

代码语言:javascript
复制
var sourceUrl = "https://github.com/libgit2/libgit2sharp";

所以我的问题是,如果我做错了什么,或者这是不受支持的特性,或者是本机git2.dll中的错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-16 16:00:39

所以我的问题是,如果我做错了什么,或者这是不受支持的功能,或者是本机

中的错误?

实际上,两者都有。

  • 第一个异常很明显是个bug。这种应该不会发生,并将被第二次需要更深入的分析。您能在LibGit2Sharp项目中打开一个问题吗?

好消息是来自的拉取请求最近被合并了。这个实现了本地fetch传输,应该可以很好地解决这个问题。

在接下来的几天里,将使用新的libgit2二进制文件版本更新LibGit2Sharp,它应该允许您执行本地克隆/获取。完成后,我将立即更新此答案。

更新

这个展示了如何对本地存储库执行克隆和推送操作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13412222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档