在工作中,我使用Cygwin很多,因为它提供了我在Windows广袤的沙漠中的一个小绿洲。 我不可避免地会通过bash shell运行一些非Cygwin程序,如构build脚本(内部创build的batch file)和Subversion CLI二进制文件(我已经安装了Windows)。 99%的时间,我没有任何问题,使用此设置。 另外1%,但是,导致一个奇怪的问题:
使用构build脚本和SVN,绝大多数情况下input键都能正确解释。 例如,我将启动数据库创build脚本,它会提示我input服务器名称。 我input“localhost”,然后回车。 一切安好。 然后到最后,如果有错误,并使用more
东西打印出来。 没有我按的键被more
认可。 我不得不Ctrl-C。
同样,如果我做一个Subversion更新,通常一切都很好。 然而,在交互式冲突解决的情况下,我通常会input“他们的全部”的“tf”,然后回车,但什么也没有发生。 我必须从Ctrl-C中取出它,然后用强制合并重新运行更新,或者在Windows中使用TortoiseSVN来执行更新。
有什么想法,为什么Cygwin似乎随机不是通过input键通过程序? 我认为这可能与Unix和Windows风格的行结尾有关,所以我试着手动input这些字符,但这似乎没有什么差别。 谢谢。
编辑 :我刚刚发生在我身上,我意识到一些事情。 这是SVN提示我input密码。 我input密码,它回显到屏幕(坏),然后回车…什么都没有。 再次input几次,光标移动,但没有任何反应。 我按Ctrl-C,它把我转回到bash,然后说:“bash:[我的密码]:命令没有find”,后面是一些新的提示等于我敲回车键的次数。 所以发生了什么是input从来没有对SVN,但不知何故被SVN退出后bash阅读。 我认为这可能会帮助人们弄清楚发生了什么事情。
不幸的是,我认为你遇到了Cygwin和Windows / DOS控制台应用程序的问题之一。 请参阅http://www.cygwin.com/cygwin-ug-net/using-effectively.html上的 “控制台程序”。
这只是Windows控制台应用程序的限制。 例如,这种行为对于Windows myqsl cmd客户端和svn客户端来说是很常见的。
这里有一些注意事项 – 我已经成功地使用这种方法与Windows的MySQL以及Windows svn客户端:
1)尝试确保你的CYGWIN环境变量中没有“tty”,看看是否有帮助(在我的电脑 – >属性 – >高级 – >环境变量中取消设置并关闭/重新启动任何cygwin bash提示符)。
2)不要使用RXVT,而应使用基本的Cygwin cmd提示符。 这是因为RXVT意味着“tty”并且会打破上面的#1。
3)尝试找到一个“本机”Cygwin软件包,而不是使用Windows cmds您有问题的cmds。 (尽管如此,我还没有找到一个用于cygwin的1.6 svn客户端。)
祝你好运! 达斯汀
关于这个小工程的冗长讨论在这里 – http://code.google.com/p/mintty/issues/detail?id=56
提到一个解决方案,在我的情况下工作(输入本地颠覆验证密码)是conin – http://code.google.com/p/mintty/downloads/detail?name=conin-0.0.2.zip&can=1&q=label %3ADevelopment
$ conin svn list https://{repo} Password for 'user': ******