2011-07-11 114 views
1

我目前正在嘗試編寫一個內部應用程序,以便能夠通過單擊將我們的項目部署到驗收和生產服務器。 我們正在使用phing完成此操作。svn checkout不能通過phing工作

目前我在檢查(或執行svn導出)項目時遇到困難。我用下面的命令:

<exec command="svn checkout ${svn.host} ${svn.exportdir} --force --username server --password <password>" /> 

正常的命令行這個完美的作品上,但是我得到提示,因爲主機使用HTTPS來接受證書。問題是似乎沒有參數來自動接受證書。

--trust-server-cert也沒有幫助,因爲證書由於主機名稱不匹配而被拒絕,而參數僅繞過「CA未知」 - 錯誤。

關於如何檢出(或導出,更新)項目的任何想法?

+0

確保你還可以通過''-non-interactive''來停止你的命令等待用戶輸入。 –

回答

1

在svn服務器HTTPS地址上做一個wget並永久接受證書。

$ wget https://svn.mydomain.com/repos 

然後按p接受證書。


我還添加了一些提示到PHP documentation about the problems with certificates

直接讓

svn checkout https://svn.mydomain.com/repos --force --username server --password iMPs+nana0kIF 

在命令行上,並接受證書。


有可能仍然是一個問題,當執行該Phing命令的用戶不是root,那麼你必須爲它運行Phing命令的用戶才能執行此命令:

su wwwrun wget https://... 
su wwwrun svn checkout https://... 
1

只需執行一次手動結賬作爲將運行phing的用戶。如果你願意,你可以結賬到/dev/null。一旦你接受了證書,它將保持被接受(如果該用戶有一個.subversion目錄存儲它)。

順便說一句,您爲什麼要使用svn命令行界面和ExecTask而不是直接使用SvnCheckoutTask的具體原因?