Git,plink和cmd.exe:如何将plink.exe作为GIT_SSH使用时是详细的

如何configurationplink.exe是由git运行时的详细信息?

问题是:在GIT_SSH=plink.exe间歇性地跨越构build从站时,使用命令git.cmd clone git+ssh://user@host/repo folderGIT_SSH=plink.exe 。 我需要find根本原因,并使连接可靠,而不必重试一些计数。

我缩小了sshd正在运行并终止其进程没有错误。 服务器正在运行gitosis,所以我只有命令行输出继续。 当失败发生时,gitosis不会被调用(没有gitosis打印),所以我怀疑windows ssh客户端。

当git调用plink.exe时,我想连接详细日志logging。

设置GIT_SSH=plink.exe -v结果是:

错误:无法产生plink.exe -v:没有这样的文件或目录

原来,GIT_SSH必须是一个可执行文件或包装脚本。

创build这样一个batch file包装会变得更近: GIT_SSH=C:\path\to\plink.cmd其中plink cmd是plink.exe -v %*打印预期详细的日志logging到控制台,但终止失败,错误代码为128.克隆的文件夹从来没有创build,最后打印的控制台输出是:

无法写入标准输出:pipe道正在closures。

如何从plink获取详细的客户端日志?

svn://svn.tartarus.org/sgt/putty源代码,使用perl mkfiles.pl从根目录下的Visual Studio 2010命令提示符构buildwindows make文件,然后用nmake -f Makefile.vc

winplink.c main()函数中找一个好地方做一个本地编辑。 我把它放在arg处理循环之前。

 flags |= FLAG_VERBOSE; 

“Plin”错误实际上是从Git服务器返回的错误消息的前4个字符。 通常,使用plink.exe提供密码时,从“echo%USERNAME%”传入帐户名称。

我们发现间歇性错误与用户名到GIT用户列表的不一致映射有关。 我们最终以大写forms标准化了所有的Git用户名。 问题就消失了。

这个问题影响了许多Git分支的许多用户。