讓PHP去執行svn命令踩過的坑

環境:X86的 centos 
鑑於,開發的時候,經常是將svn的代碼checkout到linux服務器下開發的,然後開發的人,又是直接通過sublime text2的sftp把代碼從服務器下載下來進行的修改。
然後,每次提交都要通過ssh到服務器上去執行svn commit 等命令。可能,熟悉linux的開發人員都沒有什麼問題,就是麻煩了點。
但是,碰到不怎麼熟悉linux的,就是痛苦的事情。爲了解決大家的痛苦,然後就想直接通過php去執行svn的命令吧。
~~~~又有人問了,爲什麼不直接checkout到windows?呵呵~~因爲,開發的時候,需要測試的時候。windows的環境很難和linux的環境做到一致呀。


下面是我在前期測試的時候,遇到的問題:
一、權限問題


 php的代碼在服務器上是以apache的用戶去執行的。所以,我們要將需要操作的目錄設置個apache可以去操作。

很高興,以爲這樣子就可以了。權限問題是沒有了。但是,刷新下發現頁面出來了這樣的錯誤。

二、svn的密碼的緩存問題
 ----------------------------------------------------------------------- ATTENTION! Your password for authentication realm: USVN-online can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details. You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in '/var/www/.subversion/servers'. ----------------------------------------------------------------------- Store password unencrypted (yes/no)? svn: Can't read stdin: End of file found "
這是,由於svn的密碼的緩存問題導致的。

上面的提示信息,已經說了解決方案。是在/var/www/.subversion/servers文件下指明 'store-plaintext-passwords' option to either 'yes' or 'no'  可以是yes也可以是no 就是要明確指明這個option就可以了。
發現/var/www沒有.subversion這個文件夾


可以在 ~/.subversion下找到我們想要的servers這個文件。複製一份到/var/www/.subversion

有啦。。

我們vi 下servers加入下面的選項


 問題解決了。。
還有一種解決的辦法就是直接在執行svn命令的時候,加上 --no-auth-cache 。這個方法更加簡單啦。。

是不是,感動到噼裏啪啦。
希望能幫助到大家跳過這些坑~~~~嚯嚯~~~~迫不及待去寫個腳本,解放生產力!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章