Использование libgit2 C API в Visual Studio 2013

Из нативного C++ я хочу использовать libgit2 C-API, а я использую Visual Studio 2013.

Напомним, что Microsoft использует libgit2 для внутренней поддержки git в Visual studio, начиная с 2010/2012, как обсуждалось здесь:

Я вижу два варианта:

(1) Загрузите, соберите и используйте libgit2 для Visual Studio 2013, как описано здесь: http://libgit2.github.com/docs/guides/build-and-link/

(2) Код для библиотеки libgit2 C-API в комплекте/установленной в Visual Studio (ВОЗМОЖНО ЛИ ЭТО?)

Обратите внимание, что мне нужен libgit2 C-API, и допустимо использовать любую версию, которая была установлена ​​с Visual Studio.

Обоснование: я ленив и не хочу собирать/устанавливать его отдельно; и кажется странным (и, возможно, может вызвать проблемы), если у меня одновременно установлено и запущено несколько версий libgit2 (вероятно, это не должно быть проблемой, но это все еще кажется странным). Другим вариантом был бы готовый двоичный файл, который я мог бы установить напрямую с другого сайта.

ВОПРОС: Могу ли я сделать (2)? Где находятся заголовки (как настроить для них проект)?


person charley    schedule 20.07.2014    source источник


Ответы (1)


Мы настоятельно не рекомендуем вам использовать версию libgit2, входящую в состав Visual Studio. Это более старая версия libgit2, чем та, что вы видите на libgit2.github.com, которая даже не соответствует выпущенная версия библиотеки. Он включает пользовательские исправления, которые были протестированы только в самой Visual Studio и могут дестабилизировать работу с помощью libgit2 в вашем собственном приложении. Хотя мы превращаем эти исправления в пул-реквесты, которые в конечном итоге включаются в libgit2, были случаи, когда нам приходилось быстро исправлять ошибки, которые не подходили бы для других пользователей библиотеки.

Кроме того, ни проект libgit2, ни Microsoft не поддержат вас, если вы попытаетесь пойти по этому пути.

Я очень заинтересован в предоставлении собственного пакета nuget для libgit2, чтобы это было проще. К сожалению, в настоящее время существуют некоторые трудности с этим. .

Пока это не будет доступно, я настоятельно рекомендую вам следовать инструкциям по сборке и ссылка на libgit2.

person Edward Thomson    schedule 20.07.2014
comment
+1 за очень четкий ответ. ;-) Меня очень интересует, продвинулись ли вы в работе над пакетом nuget для libgit2... какие-нибудь предположения о сроках, учитывая текущие трудности? - person charley; 21.07.2014