Я на самом деле пытаюсь использовать libgit2 с C ++ для фиксации и вставки git-репозитория.
Нет проблем с HTTPS, но с SSH у меня ошибка:
git_remote_connect: недопустимая команда: 'XXX' YYY / test.git ''
Вы, кажется, используете ssh для клонирования URL git: //.
Убедитесь, что ваш параметр конфигурации core.gitProxy и
Переменная среды GIT_PROXY_COMMAND НЕ установлена
После долгих исследований я наконец-то обнаружил, откуда обычно возникает моя проблема.
В git_remote_connect третьим аргументом является git_remote_callbacks.
Мне нужно определить полезную нагрузку в этом обратном вызове.
Полезной нагрузкой должен быть git_strarray, содержащий две строки, но Я абсолютно не знаю, какую строку я должен написать . Командная оболочка? С ++ функция? Имя пользователя?
Если я не добавлю полезную нагрузку в обратные вызовы, у меня будет ошибка:
"неверные пути ssh, должны быть две строки"
Я создаю полезную нагрузку:
char * str1 = "";
char * str2 = "XXX"; //The string that appear in the error message
char * astr[2];
astr[0] = str1;
astr[1] = str2;
git_strarray payload = {astr, 2};
push_options.callbacks.payload = &payload;
Мой вопрос: знаете ли вы, что я должен написать в двух строках полезной нагрузки?
решаемые
Я решил свою проблему: я добавил транспорт к своим обратным вызовам, поэтому это не сработало. Спасибо Карлосмн за терпение!
Для libgit2 есть слабость, вы можете присоединиться к ней, если у вас есть проблемы: http://slack.libgit2.org/