[nodejs]svn命令行中避免进入用户交互出现卡住的情况

问题

在服务器后台nodejs上使用svn导入变更记录出现“Error: spawn ENOMEM”错误提示,查了下发现是“底层抛了错误,并且设置了errno为ENOMEM,内存不够用”

现象

登录到后台系统,发现有很多svn进程驻留在了后台,于是想着应该是异常情况后svn进程出现了驻留不退出的情况

过程

调试发现了两种情况会出现驻留的情况,一种是用户名使用了邮箱全写,比如"[email protected]",这种情况下,会出现需要验证领域的提示;另一种是svn用户名密码输入错误的情况

解决

但是就算用户写错了,后台也需要正常处理才可以,于是想是不是spawn-svn是否含有超时时间的设置,跟踪到底层,发现最终调用了child_process中的spawn方法,查了下child_process中有两个方法用于进程的调用:spawn和exec;两个的区别,可以在网上查找...

发现spawn的参数中没有timeout属性,而exec中有timeout属性,但是因为两种调用方式返回结果不同,就需要修改spawn-svn调用的easy-spawn底层库了,这个处理方式显然不好(1.修改第三方库,后续升级第三方库就麻烦了;2.工作量比较大)...

方案

于是想着在svn命令行上查找一下解决方法,使用svn help info查找帮助文档,查找到参数如下

想了下,之前遇到一个问题:如果同台机器切换用户也会出现提示,当时采用了修改配置文件的方式,第一个参数应该就可以把这个问题解决掉...

于是添加上这三个参数后,问题解决了···

svn.getInfo([url, ‘--no-auth-cache‘, ‘--non-interactive‘, ‘--trust-server-cert‘], function(err, info){

转载请注明:http://blog.csdn.net/sogouauto

探索测试奥义,交流测试技术,欢迎关注“搜狗测试”

时间: 2024-10-09 20:56:51

[nodejs]svn命令行中避免进入用户交互出现卡住的情况的相关文章

svn 命令行基本操作

以下是我常用到的svn 命令行,整理了一下,这东西版本控制上很有用,所以不会不行,当然,你也可以选择一些svn图形界面的工具 0 查看当前工作目录svn 状态 简写:svn st 1.将文件checkout到本地目录svn checkout path(path是服务器上的目录)简写:svn co 2.往版本库中添加新的文件svn add file 3.将改动的文件提交到版本库svn commit -m “LogMessage” [-N] [--no-unlock] PATH(如果选择了保持锁,就

SVN学习之svn命令行下的基本操作

http://huihai.iteye.com/blog/1985751 上一节已经把svn安装完成,下来就用命令行做一些简单的操作. 1.当svn安装完成后,svn管理人员会在svn的root根目录下新建一项目工厂,用来存放相应的项目,我们有的例子项目叫oa,即项目的名称为oa.管理人员这时就会在命令行窗口使用命令 Svn代码   svnadmin create oa 创建一个svn的oa的工厂.如下图: 这时在d:/svn/root目录里就会有一个oa的文件夹,这里的oa文件夹专门放oa项目

svn 命令行

SVN版本:1.5 及更新版本 名词说明: WC:Working Copy 你的工作区 Versioned:受控的:受版本控制的 SVN是什么? SVN是开源的版本控制系统. 比CVS更多的特性.一个更好的CVS?因此SVN具有大部分CVS拥有的特性. 不仅仅是文件受控,目录也加入版本控制. 复制,删除,重命名这些操作都是受控的. 特殊作用的元数据(属性). 提交事务原子性.提交完成之前任何一个部分都不会正真生效.版本号基于提交,而不是基于文件.提交时的log message也是依附于提交的那个

详解NodeJS和命令行程序

源起 植根于Unix系统环境下的程序,很多都把贯彻Unix系统设计的哲学作为一种追求.Unix系统管道机制的发明者Douglas McIlroy把Unix哲学总结为三点: 专注做一件事,并做到极致.程序协同工作.面向通用接口,如文本数据流.随着Unix/Linux系统在服务器上影响力越发强大,以及各种跨平台解决方案的发展,这种哲学也被带到了各种平台上.若干年前,笔者第一次接触NodeJS和其包管理解决方案NPM时候,就感觉到其官方倡导的风格,和Unix系统哲学非常契合.近年来,随着NodeJS在

svn 命令行下常用的几个命令

svn 命令行下常用的几个命令 下载网址: https://www.visualsvn.com/downloads/ 下载直接安装即可. 1.将文件checkout到本地目录   svn checkout path(path是服务器上的目录)    例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.往版本库中添加新的文件     svn add file   例如:svn add test.php(添加test.php) svn a

在MySQL命令行中使用SQL语句的规则

规则1: SQL语句必须以分号(;)或者(\G)结束 分号(;)是SQL语句的结束标志.如果遗忘了分号,而直接按下回车键时,在MySQL客户端上将显示如下 mySQL> SELECT * FROM customer -> 因为没有以分号结束,客户端认为SQL语句并没有结束,显示[->]等待用户继续输入命令,直到以分号结束.有些数据库中,支持省略最后的分号的情况. 规则2: 保留关键字不区分大小写 保留关键字是SQL中事先定义好的关键字,如上面检索语句中的SELECT.FROM等就属于保留

[MAC] Mac下的SVN命令行

转载自: http://www.cnblogs.com/snandy/p/4072857.html Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout url(url是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.往版本库中添加新的文件 svn add file 例如:svn

如何在Linux命令行中创建以及展示演示稿

你在准备一场演讲的时候,脑海可能会先被图文并茂.形象华丽的演示图稿所占据.诚然,没有人会否认一份生动形象的演讲稿所带来的积极作用.然而,并非所有的演讲都需要TED Talk的质量.更多时候,演讲稿只为传达特定的信息. 而这个,使用文本信息足以完成.在这种情况下,你的时间可以更好的花在信息的搜集和核实上面,而不是在谷歌图片搜索(Google Image)上寻找好看的图片. 在Linux的世界里,有几个不同的方式供你选择来做演讲.比如带有大量多媒体展示.视觉冲击效果极佳的Impress.js,专为L

Mac SVN 命令行

Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有