LibGit2Sharp проблемы
Я пытаюсь использовать LibGit2Sharp в бета-версии Unity 2018.2, потому что предыдущие версии Unity не поддерживают.NET Framework 4.7.1, которая потребуется для LibGit2Sharp.
Сначала я хотел попробовать несколько вещей и столкнулся со следующими проблемами:
если я пытаюсь клонировать репозиторий (я сначала использовал пример на GitHub: https://github.com/libgit2/libgit2sharp/wiki/git-clone), я получаю ошибку "LibGit2SharpException: не удалось отправить запрос" в Unity,
Я также пытался получить информацию из рабочей копии. Я создаю
Repository
сnew Repository(string path)
, получитьRepositoryStatus
от этого сrep.RetrieveStatus(new StatusOptions())
, Теперь, если я пытаюсь получить доступ к состоянию файлов, это вызывает сбой в Unity. Независимо от того, перебираю ли я все файлы и хочу лиfile.State
или хотите получить конкретныйFileStatus
список из всего статуса (пример:status.Added
). Однако печать путей к файлам работает.Выборка тоже не работает для меня, она выдает то же исключение, что и команда клонирования.
Я думаю, что второй вопрос может быть просто проблемой, но клон и выборка должны работать.
Обновление: к сожалению, я продолжаю сталкиваться с проблемами в моем проекте с libgit2sharp в Unity. Я хочу сделать коммит, теперь, если я попытаюсь перебрать StatusEntries
для создания файлов Unity просто падает, но иногда это работает. Воспроизвести ошибку очень сложно, и часто я получаю разные crashlog-entries
для того же процесса. В прошлый раз, когда я попробовал сегодня, ошибка была:
0x00007FFB417386CE (git2-6311e88) [c: \ projects \ libgit2sharp-nativebinaries \ libgit2 \ src \ diff_generate.c: 1352] git_diff_tree_to_index
Я создал test-repository
в моей программе, использующей Github API и клонировав это на мой компьютер, до сих пор это работает нормально. И затем, если я создаю несколько файлов в папке и хочу сделать коммит, я сталкиваюсь с ошибкой выше. К сожалению, это одна из нескольких других проблем, и я не могу добиться успеха с моим проектом.
Я установил libgit2sharp и двоичные файлы с помощью диспетчера пакетов Nuget Visual Studio.
У кого-нибудь есть опыт работы с LibGit2Sharp и, может быть, есть идеи о том, что я могу делать неправильно, или почему эти вещи не работают для меня?
Обновление 2: я все еще пытаюсь решить проблему. Сейчас я несколько раз тестировал различные способы получения информации о состоянии файла в хранилище. Лучший способ сделать это в моем проекте будет с Repository.RetrieveStatus(filePath)
Теперь, если я попробую это, он бросает AmbiguousSpecificationException
, Может кто-нибудь объяснить, что именно это означает и как я могу избежать этого? Я также попытался форсировать оценку буквального пути с Repository.RetrieveStatus(new StatusOptions() { DisablePathSpecMatch = true });
как рекомендовано в сообщении AmbiguousSpecificationException
, но тогда Unity вылетает с error-log
в первом обновлении этого поста.
0 ответов
У меня была та же проблема, когда Unity зависала на RetrieveStatus(); вызов. Похоже, это может быть ошибкой в LibGit2Sharp, так как RetrieveStatus("filepath") работал для меня. Я использовал последний коммит libgit2sharp (0dcaefc) и Unity 2018.3.0f2.
Я использовал абсолютный путь к файлу и "\" вместо "/" (работает в Windows 10).