На 32-разрядной машине с Windows XP я клонировал репозиторий 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
для его запроса. Кроме того, у меня есть git, установленный в Program Files/git, и он отлично работает. Упомянутый файл не существует в каталоге пользователя, это правда. Я недоволен, потому что не могу проверить возвращенный код ошибки (ошибка может быть "настоящей").
Итак, я создал пустой файл в D:\Documents and Settings\User Name.config\git\config. Каталог .git снова создается, но я получаю тот же код ошибки -1. На этот раз giterr_last() возвращает NULL.
Отслеживание кода в отладчике указывает на то, что библиотека недовольна моим пустым файлом.
Однако я думаю, что это указывает на то, что я делаю что-то не так. Есть ли метод инициализации? Нужно ли мне создавать файл и использовать функции git_config_, чтобы указать на него библиотеку?
Кстати, это неправильное место, чтобы спросить об этом? Есть ли специальный форум, где я должен задать этот вопрос?
Спасибо
Вот обратная трассировка, где вызов завершается ошибкой: pastebin Похоже, что файл конфигурации внутри каталога .git не может быть проанализирован (в трассировке не показана ошибка 'config_parse()').
Я открыл проблему в libgit2.