Git, plink e cmd.exe: como configuro o plink.exe para ser detalhado quando usado como GIT_SSH

3

Como posso configurar o plink.exe para ser detalhado quando executado pelo git?

O problema: no Windows, usando o comando git.cmd clone git+ssh://user@host/repo folder quando GIT_SSH=plink.exe falha intermitentemente nos escravos de construção. Preciso encontrar a causa raiz e tornar as conexões confiáveis, sem tentar novamente.

Eu limito que o sshd está rodando e encerrando seus processos sem erros. O servidor está rodando gitosis, então eu só tenho saída de linha de comando para continuar. Quando a falha acontece, a gitosis não é chamada (nenhuma gitosis é impressa), então estou suspeitando do cliente ssh do Windows.

Eu quero me conectar com o log detalhado quando o plink.exe é invocado pelo git.

Definir GIT_SSH=plink.exe -v resulta em:

error: cannot spawn plink.exe -v: No such file or directory

Acontece que GIT_SSH deve ser um script executável ou wrapper.

A criação de um wrapper de arquivo em lote se aproxima: GIT_SSH=C:\path\to\plink.cmd em que plink cmd é plink.exe -v %* imprime o log detalhado esperado no console, mas termina sem êxito com o código de erro 128. A pasta clonada nunca é criada e a última saída impressa do console é:

Unable to write to standard output: The pipe is being closed.

Como posso obter o registro detalhado do cliente no momento da falha do plink?

    
por Epu 04.03.2013 / 20:47

2 respostas

1

Puxe o código-fonte de svn://svn.tartarus.org/sgt/putty , construa as janelas para criar arquivos a partir de um prompt de comandos do Visual Studio 2010 no diretório raiz usando perl mkfiles.pl e, em seguida, construa tudo com nmake -f Makefile.vc .

Encontre um bom local para fazer uma edição local na função winplink.c main (). Eu coloquei o meu antes do loop de processamento arg.

flags |= FLAG_VERBOSE;
    
por 04.03.2013 / 22:22
1

O erro "Plin" é, na verdade, os 4 primeiros caracteres da mensagem de erro retornada do servidor Git. Normalmente, o nome da conta é passado de 'echo% USERNAME%' ao usar o plink.exe para fornecer a senha.

Descobrimos que os erros intermitentes estão relacionados ao mapeamento inconsistente de nomes de usuários para a lista de usuários do GIT. Acabamos padronizando todos os nomes de usuários do Git em letras maiúsculas. e o problema foi embora.

Esse problema afetou muitos usuários em muitas ramificações do Git.

    
por 03.08.2016 / 18:49