2011-12-06 85 views
0

我試圖做一個後提交更新我的網站在每次提交。在/掛鉤/後提交顛覆後提交不叫

我一樣遵循

/svnUupdat/cProgrammeThatUpdate >> /log/test.log 

現在好了,如果我嘗試

env - ./post-commit 

它的工作原理,該網站獲得更新到最新修訂(有是在日誌中的東西)

但是,如果我承諾後提交不被稱爲?? (沒有在日誌和網站未更新)

需要注意的是,如果我只放在後提交

/bin/echo "post-commit run" >> /log/test.log 

如果犯了某些事情...工程..有什麼東西在日誌..爲什麼不叫我的C程序呢?

編輯 我嘗試別的東西,那不是調用C PROGRAMM

/usr/bin/svn update /var/www/vhost/xx.com/site1/ >> /var/log/svn/example.log 
日誌我跳過在/ var/WWW在

...

爲什麼跳過?如果我在終端推出了svn更新它的工作原理,工作目錄中獲取最後一次修訂

感謝

回答

1

的「跳過」消息指出,因爲它不是一個工作拷貝,Subversion不能更新目錄。但是,這與您的聲明有衝突,您可以手動更新目錄。也許你的道路上有錯別字?

您還應該意識到,提交後腳本是以提交的用戶身份執行的。這可能是也可能不是你使用終端的用戶。您應該檢查提交用戶是否具有適當的權限來執行提交後腳本,以及該用戶是否有權執行腳本的任何操作。

+0

你好,的確,我在我的路徑中有一個錯字(在提交後)。現在A提交後路徑是正確的,日誌中沒有任何東西......所以這可能是一個特權問題。正在提交的進程是httpd,並且它的所有者是apache我已經做了chown apache.apache post-commit我是否必須執行與我的工作目錄相同的操作? – Johny19

+0

由於您計劃更新工作目錄,因此您肯定需要寫入權限。嘗試'su - apache'(或任何你的httpd用戶)並執行你的post-commit腳本。但是,當您更改http守護程序的權限時,您應該知道您正在執行的操作,因爲這可能會影響安全性。你有沒有考慮過使用'svn + ssh'來訪問你的repo呢? –

2

請注意,當SVN調用掛鉤文件時,就像沒有設置環境變量一樣。因此您必須在鉤子文件的開頭手動設置PATH變量。