我正在一个项目中工作,其中有配置文件,每个应用程序部署的环境都有一个。
当开发人员修改其中一个文件时,不应允许开发人员单独签入文件,而是一起签入所有文件,或者至少应通知开发人员需要这样做。< / p>
我们如何实现它?
答案 0 :(得分:12)
我认为你可以编写一个预提交钩子来做这个 - 只需要一个文件列表,如果一个文件提交,那么它们必须都被提交。
您可以使用任何可编写命令行应用程序的语言编写挂钩。唯一的问题是它们在SVN服务器的上下文中运行,并且(至少在传统上,我不知道这是否是改进后,他们开始时没有给予太多环境 - 例如,你可能会被缺乏“PATH”所困扰。
您的存储库将在'hooks'目录中包含示例batchfile / shell-script挂钩,但我过去也用C#编写它们。
这个http://wordaligned.org/articles/a-subversion-pre-commit-hook看起来像预先提交钩子的一般介绍。
答案 1 :(得分:1)
不,要获取有关该事务的信息,您的脚本可以简单地查询svn有关详细信息。并且svn可以提供该信息,它不需要在同一台服务器上。
他的意思是当subversion执行你的钩子时,它运行 w / o环境和 svn服务器本身。您的svn hook可能需要的任何外部资源都必须可以由svn服务器帐户访问。根据您的要求,这可能不是问题,假设您不需要某种外部数据库访问等来比较事务。
最好的办法是查看一些subversion挂钩that come with svn作为示例。另外SVN Hook Arguments列出了每个钩子的调用方式。