Git, plink и cmd.exe: как настроить plink.exe быть многословным при использовании в качестве GIT_SSH

Как я могу настроить plink.exe быть многословным при запуске git?

Проблема: на окнах, используя команду git.cmd clone git+ssh://user@host/repo folder когда GIT_SSH=plink.exe периодически терпит неудачу через рабов сборки. Мне нужно найти основную причину и сделать соединения надежными, без повторных попыток.

Я сузил, что sshd работает и завершает свои процессы без ошибок. На сервере запущен gitosis, поэтому у меня есть только выход из командной строки. Когда происходит сбой, gitosis не вызывается (без распечатки gitosis), поэтому я подозреваю, что клиент windows ssh.

Я хочу соединиться с подробным ведением журнала, когда git вызывает plink.exe.

настройка GIT_SSH=plink.exe -v результаты в:

ошибка: не удается запустить plink.exe -v: нет такого файла или каталога

Оказывается, GIT_SSH должен быть исполняемым или упаковочным скриптом.

Создание такой оболочки командного файла становится ближе: GIT_SSH=C:\path\to\plink.cmd где plink cmd plink.exe -v %* выводит на консоль ожидаемое подробное ведение журнала, но безуспешно завершает работу с кодом ошибки 128. Клонированная папка никогда не создается, и последний вывод на консоль:

Невозможно записать в стандартный вывод: канал закрыт.

Как я могу получить подробный журнал клиента во время сбоя от plink?

2 ответа

Решение

Вытащите исходный код из svn://svn.tartarus.org/sgt/putty, создайте файлы Windows make из командной строки Visual Studio 2010 в корневом каталоге, используя perl mkfiles.pl, а затем построить все с nmake -f Makefile.vc,

Найдите хорошее место для локального редактирования в winplink.c основная функция. Я поставил свой прямо перед циклом обработки arg.

flags |= FLAG_VERBOSE;

Ошибка "Plin" - это фактически первые 4 символа возвращенного сообщения об ошибке с сервера Git. Обычно имя учетной записи передается из 'echo %USERNAME%' при использовании plink.exe для предоставления пароля.

Мы обнаружили, что периодически возникающие ошибки связаны с непоследовательным отображением имен пользователей в список пользователей GIT. В итоге мы стандартизировали все имена пользователей Git в верхнем регистре. и проблема ушла.

Эта проблема затронула многих пользователей во многих ветвях Git.

Другие вопросы по тегам