Назад | Перейти на главную страницу

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

Как я могу настроить 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;