Как я могу настроить plink.exe, чтобы он был подробным при запуске с помощью git?
Проблема: в Windows с помощью команды git.cmd clone git+ssh://user@host/repo folder
когда GIT_SSH=plink.exe
периодически дает сбой в ведомых сборках. Мне нужно найти основную причину и сделать соединения надежными, не предпринимая никаких повторных попыток.
Я сузил, что sshd работает и завершает свои процессы без ошибок. На сервере работает gitosis, поэтому у меня есть только вывод командной строки. Когда происходит сбой, gitosis не вызывается (нет отпечатков gitosis), поэтому я подозреваю клиента ssh для Windows.
Я хочу подключиться к подробному ведению журнала, когда plink.exe вызывается git.
Настройка GIT_SSH=plink.exe -v
приводит к:
ошибка: невозможно создать plink.exe -v: нет такого файла или каталога
Оказывается, GIT_SSH должен быть исполняемым файлом или скриптом-оболочкой.
Создание такой оболочки для пакетного файла становится ближе: GIT_SSH=C:\path\to\plink.cmd
где plink cmd plink.exe -v %*
выводит ожидаемый подробный журнал на консоль, но завершается безуспешно с кодом ошибки 128. Клонированная папка никогда не создается, и последний напечатанный вывод консоли:
Невозможно записать в стандартный вывод: канал закрывается.
Как я могу получить подробный клиентский журнал в момент сбоя из plink?
Ошибка «Plin» - это на самом деле первые 4 символа сообщения об ошибке, возвращаемого сервером Git. Обычно имя учетной записи передается из "echo% USERNAME%" при использовании plink.exe для предоставления пароля.
Мы обнаружили периодические ошибки, связанные с несогласованным отображением имен пользователей в список пользователей GIT. В итоге мы стандартизировали все имена пользователей Git в верхнем регистре. и проблема ушла.
Эта проблема затронула многих пользователей во многих ветках Git.
Вытащите исходный код из svn://svn.tartarus.org/sgt/putty
, создайте окна, создайте файлы из командной строки Visual Studio 2010 в корневом каталоге, используя perl mkfiles.pl
, а затем построить все с помощью nmake -f Makefile.vc
.
Найдите хорошее место для локального редактирования в winplink.c
основная функция. Я поместил свой прямо перед циклом обработки аргументов.
flags |= FLAG_VERBOSE;