2008-11-24 81 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列出了每个钩子的调用方式。