【发布时间】:2014-03-07 12:26:03
【问题描述】:
我想在我的开发盒上提交后自动更新远程登台服务器。 我正在尝试在 Win 7 64 上设置 TortoiseSVN post-commit hook。 我在系统中安装了 TortoiseGit,其中包含许多有用的命令,例如 'ssh'
我创建了 test.bat 脚本,其中包含:
ssh -l {username} -i "C:\Users\{path-to-ssh-key.pem}" {server_address} ./svnup
此脚本在远程登台服务器上运行“svn up”。这个 test.bat 文件在手动启动时可以正常工作。但它不适用于提交后配置。出现空白控制台屏幕,然后 TortoiseSVN 显示错误:
Error: The hook script returned an error:
Error: 0 [main] ssh 2040 fhandler_base::dup: dup(some disk file) failed, handle 0, Win32 error 6
Error: dup() in/out/err failed
你能建议吗?
UPD:我升级了批处理脚本以使用完整路径。
"C:\Program Files (x86)\Git\bin\ssh.exe" -l {username} -i "C:\Users\{path-to-ssh-key.pem}" {server_address} ./svnup
但错误仍然存在。现在它有了一些新号码
Error: The hook script returned an error:
Error: 0 [main] ssh.exe" 6976 fhandler_base::dup: dup(some disk file) failed, handle 0, Win32 error 6
Error: dup() in/out/err failed
【问题讨论】:
-
1.将标准输出重定向到日志文件 2. 尝试使用原生 Plink 而不是 ssh
标签: windows svn batch-file ssh tortoisesvn