2008-11-24 91 views
8

我正在一個項目中有配置文件,每個應用程序部署的環境都有一個配置文件。Subversion Hook

當開發人員修改其中一個文件時,開發人員不應該被允許單獨簽入文件,而是一起簽入所有文件,或者至少應該通知開發人員需要完成此操作。

我們該如何實現它?

回答

12

我想你可以寫一個pre-commit鉤子做到這一點 - 只要有其中如果一個致力於那麼他們都必須提交的文件列表。

你可以使用任何你可以編寫命令行應用程序的語言編寫鉤子。唯一的問題是它們運行在SVN服務器的上下文中,並且(至少在傳統上我不知道這是否是這樣但他們在開始時並沒有給予太多的環境 - 例如,你會因缺乏'PATH'而被抓住。

你的倉庫將有例如批處理文件/ shell腳本鉤在「鉤子」目錄,但我也寫他們在C#中來。

http://wordaligned.org/articles/a-subversion-pre-commit-hook看起來像一個很好的一般性介紹預先承諾掛鉤。

1

不,爲了讓你的腳本可以直接查詢svn的有關細節的交易信息。而svn可以提供這些信息,它不需要在同一臺服務器上。

他的意思是,當執行顛覆你的鉤子運行瓦特/ O環境和由SVN服務器本身。 svn鉤子可能需要的任何外部資源都必須可以由svn服務器帳戶訪問。根據你的要求,這可能不是問題,假設你不需要某種外部數據庫訪問或類似的東西來比較交易。

最好的辦法是看一些顛覆掛鉤that come with svn的實例,。另外SVN Hook Arguments列出了每個鉤子的調用方式。