8

我正在一个项目中工作,其中有配置文件,每个部署应用程序的环境都有一个。

当开发人员修改其中一个文件时,不应允许开发人员单独签入文件,而是将所有文件一起签入,或者至少应通知开发人员需要这样做。

我们怎样才能实现它?

4

2 回答 2

12

我认为您可以编写一个预提交挂钩来执行此操作 - 只需有一个文件列表,如果一个文件被提交,那么它们都必须被提交。

您可以用任何可以编写命令行应用程序的语言编写挂钩。唯一的问题是它们在 SVN 服务器的上下文中运行,并且(至少在传统上,我不知道这是否有所改进),当他们开始时,他们没有得到太多的环境 - 例如,您可能会因为缺少“PATH”而陷入困境。

您的存储库将在“钩子”目录中包含示例批处理文件/shell-script 钩子,但我过去也用 C# 编写过它们。

这个http://wordaligned.org/articles/a-subversion-pre-commit-hook看起来像是对预提交挂钩的一个很好的一般介绍。

于 2008-11-24T11:48:38.250 回答
1

不,要获取有关交易的信息,您的脚本可以简单地查询 svn 的详细信息。并且 svn 可以提供该信息,它不必在同一台服务器上。

他的意思是,当 subversion 执行你的钩子时,它会在没有环境的情况下运行,并且由svn 服务器本身运行。您的 svn 挂钩可能需要的任何外部资源都必须可由 svn 服务器帐户访问。根据您的要求,这可能不是问题,假设您不需要某种外部数据库访问等来比较交易。

您最好的选择是查看一些svn 附带的颠覆挂钩作为示例。SVN Hook Arguments还列出了每个钩子的调用方式。

于 2008-11-24T12:31:51.923 回答