我试图在Unitation2018.2测试版中使用LibGit2Sharp,因为以前的统一版本不支持.NET框架4.7.1,这是LibGit2Sharp所需要的。
我想先尝试几件事,但遇到了以下问题:
new Repository(string path)创建一个new Repository(string path),用rep.RetrieveStatus(new StatusOptions())从它获得RepositoryStatus。现在,如果我试图访问文件的状态,它会在Unity中造成崩溃。不管我是遍历所有文件,想要打印file.State,还是希望从整个状态获得一个特定的FileStatus列表(例如:status.Added)。但是,打印这些文件是有效的。我认为第二个问题可能只是一个问题,但是克隆和获取应该是可行的。
更新:遗憾的是,在与libgit2sharp的联合项目中一直面临问题。我想要提交,现在如果我试图迭代StatusEntries来生成文件,那么Unity就会崩溃,但有时它会起作用。很难重现这个bug,而且我经常会为同一个过程获得不同的crashlog-entries。我最近一次尝试这个错误是:
0x00007FFB417386 (git2-6311e88) c:\projects\libgit2sharp-nativebinaries\libgit2\src\diff_generate.c:1352 git_diff_tree_to_index
我已经在我的程序中创建了一个test-repository,并将其克隆到我的pc上,到目前为止还不错。然后,如果我在文件夹中创建了一些文件并想要提交,我就会遇到上面的错误。可悲的是,这是其他几个问题之一,我不能真正取得进展,我的项目。
我已经用Visual的安装了libgit2sharp和二进制文件。
有没有人对LibGit2Sharp有过经验,也可能对我可能做错了什么有一些想法,或者为什么这些东西不适合我?
更新2:我还在努力解决这个问题。现在,我已经多次测试不同的获取存储库文件状态信息的方法。在我的项目中最好的方法是使用Repository.RetrieveStatus(filePath),现在如果我尝试这样做,它会抛出一个AmbiguousSpecificationException。有人能解释一下,这到底意味着什么,我该如何避免呢?我还尝试强制使用Repository.RetrieveStatus(new StatusOptions() { DisablePathSpecMatch = true });进行文字路径评估,如AmbiguousSpecificationException消息中所建议的那样,但是在本文的第一次更新中,Unity与error-log一起崩溃。
发布于 2019-01-14 21:33:07
我遇到了同样的问题,Unity在RetrieveStatus();call上崩溃了。这似乎是LibGit2Sharp中的一个bug,因为RetrieveStatus("filepath")为我工作。我使用了最新的libgit2sharp提交(0dcaefc)和Unity2018.3.0f2。
我使用绝对filepath和"\“代替"/”(在Windows 10上运行)。
https://stackoverflow.com/questions/50011229
复制相似问题