确保部署正确版本文件的最佳方法是什么?

时间:2008-11-03 20:29:36

标签: deployment cvs versioning

我工作的公司写了很多小的Perl和Bash脚本来将数据按到可用于我们软件的东西上。与任何代码一样,这些脚本可以更改。我提供了CVS,因为文件版本控制而不是存储库版本控制。无论如何,我正在考虑使用部署工具来使脚本从开发到生产。生产服务器将拥有自己的简单版本控制系统,如果其中一个脚本的md5 sum与数据库中的一个不匹配,它将不会运行脚本并通过电子邮件发送相应的各方。

我想强制程序员部署最新的脚本CVS版本。如果它不是最新的,它应该消失,并告诉他们必须先检查他们的版本。我意识到可能存在需要部署旧文件的情况。这些都是例外,可以这样处理。

最好的做法是什么?它就像做'cvs diff'一样简单吗?

2 个答案:

答案 0 :(得分:1)

如果要编写某种分发脚本,它应该相对简单

1)脚本应该在你的cvs存储库中提交

2)我建议从你的makefile(或你使用的任何构建系统)调用脚本    像这样的东西

make dist

并且dist规则将调用您的脚本 3)脚本将执行

 cvs up -An 

并分析输出以查找M或C或A或R状态    例如,通过将输出重定向到grep。

grep -c ^[MCAR] 

如果计数> 0你遇到了问题。

4)如果上述任何一个发现脚本失败

5)如果没有创建tar或您正在使用的任何其他形式的分发

要部署旧版本,您可以将-A作为参数默认设置为-A并覆盖例如shell变量,例如-r tag-3.14.4。

答案 1 :(得分:0)

我参与了一个部署的内部工具。 它是为企业设计的(并符合SOX规定),因此它依赖于批准来部署代码。

因此,我们部署了开发人员在请求中指定的代码版本,而不是最新版本。原因是开发人员可能需要进行更改,进行测试,同时进行其他更改。这些较新的更改尚未经过测试(QA)阶段,但开发人员原始版本已经完成,因此我们将部署该版本。

所有这一切,我会设计它可以指定版本号,如果没有版本号,那么推最新版本。