svn hooks 同步設置

昨天配置了一下午svn  hooks


本了很簡單的一件事情,卻因爲 一個https弄的異常難搞。


在hooks的目錄下,編輯 post_commit之後,始終無法updae,原因是,需要ssl驗證主機。


在網上查看了下,用了svn ls  https://****之後,彈出需要確認,輸入p,輸入密碼之後還是不行。


於是,我懷疑是用戶的是。svn+apache  做的https協議。應該是用apache用戶跑的吧。

可是apache用戶我設置的是沒有登陸權限的。怎麼辦?


只好usermod  修改,成爲可登錄用戶。從/etc下面某個目錄生成原始的bash環境配置文件。


用apache用戶進行驗證,保存驗證信息,保存密碼。還是不行。還是報錯。


在老外的網站上發現了兩個參數。

--non-interactive --trust-server-cert

然後呢。需要輸入p的那個報錯沒了,剩下最後一行,錯誤信息:post-commit Host key verification failed.  驗證失敗。哈哈哈,還是失敗。無語了。


最後決定放棄了,不用hooks的腳本跑了。


後來無意間發現有人這麼做:

/usr/bin/ssh -lT [email protected] "/usr/bin/svn up /home/****"

/usr/bin/ssh -lT [email protected] "chown apache:apache /home/**** -R"


我再試試吧,不在本機弄了,直接同步到別的機器上。

做了ssh-key免登錄之後,抱了個UTF-8的錯誤。

有人說在apache的配置文件加上:

SVNUseUTF8 on


不知道我寫的不對還是就是不行,失敗了。

svn客戶端post-commit時,出現如下錯誤
post-commit hook failed (exit code 1) with output.
[Error output could not be translated from the native locale to UTF-8.]

解決方法:
其實上述錯誤是一個錯誤,執行post-commit腳本時文字編碼造成的
在版本庫hooks/post-commit文件中
原來是#export LANG=zh_CN.GBK
修改爲export LANG=en_US.UTF-8即可(svn服務器默認是utf8)


後來照着上面的改,成功了。


暫時寫到這。怎麼讓hooks識別commit -m "****"  裏面的***?然後根據***進行同步命令多好啊?

繼續努力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章