1. 程式人生 > >[nodejs]svn命令列中避免進入使用者互動出現卡住的情況

[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

探索測試奧義,交流測試技術,歡迎關注“搜狗測試”


相關推薦

[nodejs]svn命令避免進入使用者互動出現卡住情況

問題 在伺服器後臺nodejs上使用svn匯入變更記錄出現“Error: spawn ENOMEM”錯誤提示,查了下發現是“底層拋了錯誤,並且設定了errno為ENOMEM,記憶體不夠用” 現象 登

cmd命令執行Java檔案中文字元亂碼情況解決

如上所示的錯誤 由於JDK是國際版的,在編譯的時候,如果我們沒有用-encoding引數指定我們的JAVA源程式的編碼格式,則javac.exe首先獲得我們作業系統預設採用的編碼格式,也即在編譯ja

svn使用規範、在Windows下使用svn命令工具、svn命令的解釋

以前在公司一直使用git,現在公司有用svn,一時間還真的不知道如何下手,在網上搜尋了很多大神和官網文件的指導,總結了下面一份教程,希望能夠幫助大家快速上手,如果想更細緻的瞭解相關內容,可以點選每個小節裡提供的的連結。 1、Windows下命令列工具: 發現原來安裝的tortoisesvn已經整合到she

在 Linux 命令使用 tcpdump 抓包

tcpdump 是一款靈活、功能強大的抓包工具,能有效地幫助排查網路故障問題。 以我作為管理員的經驗,在網路連線中經常遇到十分難以排查的故障問題。對於這類情況,tcpdump 便能派上用場。 tcpdump 是一個命令列實用工具,允許你抓取和分析經過系統的流量資料包。它通常被用作於網路故障分析工具以及安全

nodejs常用命令

REPL 命令 ctrl + c - 退出當前終端。 ctrl + c 按下兩次 - 退出 Node REPL。 ctrl + d - 退出 Node REPL. 向上/向下 鍵 - 檢視輸入的歷史命令 tab 鍵 -

轉自: linux svn命令無法拉取中文名稱的檔案

轉自: https://blog.csdn.net/shaohui/article/details/3996274#commentBox   svn: Can't convert string from 'UTF-8' to&

命令建立Django專案

1、終端先進入你要放專案的目錄。 在命令列輸入:django-admin startproject 專案名  。回車,此時建立了一個專案。 例:django-admin startproject mysite 2、建立好了一個diango專案,然後再需要建立自己的一個應用專案,比如叫blo

Windows 如何在cmd命令檢視 修改 刪除與新增環境變數

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

命令執行 java 程式

一,首先進入檔案所在的目錄,我的 FrequencyCounter(統計字元出現頻率最高的詞) 程式放在桌面, 所以使用 cd desktop 就可,你們的是 cd 路徑名。 二,然後使用 javac FrequencyCounter.java 生成 .class 可執行檔案

如何在cmd命令檢視、修改、刪除與新增環境變數

1、檢視當前所有可用的環境變數:輸入 set 即可檢視。 2、檢視某個環境變數:輸入 “set 變數名”即可,比如想檢視path變數的值,即輸入 set path 3、修改環境變數 :輸入 “set 變數名=變數內容”即可,比如將path設定為“d:\nmake.exe”,只要輸入set

nodejs命令工具

npm 不僅可以管理 nodejs 的依賴關係,它還可以用來打包和分發命令列工具! 建立一個新的 npm 專案: $ npm init 給應用起一個名字:ser,其他輸入項都直接回車,用預設內容。最後,建立了檔案 package.json: { "nam

Linux系統下命令實現Wifi 連線的方法

Linux系統下中 在命令列中實現Wifi 連線的方法 from:https://www.cnblogs.com/chaobest/articles/6693161.html 無論何時要安裝一款新的 Linux 發行系統,一般的建議都是讓您通過有線連線來接到網際網路的。 這主要的原因有兩

如何在Linux命令進行基本的數學運算

expr命令 Linux中的expr或expression命令是用於執行數學計算的最常用命令。您可以使用此命令執行加法,減法,乘法,除法,遞增值等功能,甚至可以比較兩個值。在本節中,我們將描述執行上述計算的語法,並介紹如何使用expr命令在Ubuntu命令列中執行高效數學運算。加法 您可以通過expr

命令執行Python,找不到匯入包

命令列中執行python,匯入其他目錄包時報找不到包的錯誤,原因是命令列中執行只會搜尋當前目錄下的包, import sys import os curPath = os.path.abspath(os.path.dirname(__file__)) rootPath = os.path.sp

考慮以下 Python 程式碼,如果執行結束,命令的執行結果是什麼?

l = [] for i in xrange(10):   l.append({‘num’:i}) print l在考慮以下程式碼,執行結束後的結果是什麼? l = [] a = {‘num’:0} for i in xrange(10):   a[‘num’] = i   l.append(a) prin

Linux命令EOF的用法

EOF是END Of File的縮寫,表示自定義終止符。 既然自定義,那麼EOF就不是固定的,可以隨意設定別名。 在linux按ctrl-d就代表EOF。 EOF一般會配合cat能夠多行文字輸出. 其用

在Linux 安裝cmus 用命令玩轉音樂庫

cmus是一個內建了音訊播放器的強大的音樂檔案管理器。用它的基於ncurses的命令列介面,你可以瀏覽你的音樂庫,並從播放列表或佇列中播放音樂,這一切都是在命令列下。 Ubuntu中 1.安裝 sudo apt-get install cmus 2. 執行 cmu

在Linux命令與彩虹貓Nyan Cat一起休息下

今天我們再來看看好玩的Linux命令列,在這裡我們將探索Linux終端上可用的一些有趣的、非常有趣的、在某些情況下完全無用的小玩意。所有這些都可以在開源許可下獲得。 它們都是獨一無二的嗎?是的。它們對你來說都是獨一無二的嗎?那我就不知道,但是,這應該會吸引人。 因此,讓我們用命令列玩具呼叫nyancat來

Linux 命令使用 tcpdump 抓包

tcpdump 是一個命令列實用工具,允許你抓取和分析經過系統的流量資料包。它通常被用作於網路故障分析工具以及安全工具。 tcpdump 是一款強大的工具,支援多種選項和過濾規則,適用場景十分廣泛。由於它是命令列工具,因此適用於在遠端伺服器或者沒有圖形介面的裝置中收集資料包以

php在cli模式下取得命令的引數的方法-getopt命令可傳遞陣列-簡單自定義方法取命令引數

  在cli模式下執行PHP時,自動給指令碼檔案傳遞了一個變數$argv,其值即是一個命令中所有值組成的陣列(以空格區分),在PHP程式中接收引數有3種方法1.直接使用argv變數陣列。 2.使用$_SERVER['argv']全域性變數來獲取,其值和1是一樣的。 3.使用getopt