使用开发,分期,生产服务器和SVN的最佳实践

我们的开发团队在数据中心有一个现场服务器,以及现场的开发和登台服务器

所有机器都运行Debian 5,PHP,MySQL

我们在开发框中运行Subversion

我们使用Dreamweaver CS5

据我了解,Dreamweaver可以连接到Subversion的reposity和pipe理检查/检出等,我们也可以指定连接到分段和生产服务器

我试图让我的脑海里围绕着工作stream程,基本上我们的人会在文件的本地副本上工作,他们会locking他们正在处理的文件,然后在完成时提交更改?

然后,完成并testing后,Dreamweaver可以上传到舞台进行进一步testing,然后再次完成Dreamweaver可以上传到生产环境。

这是一个合理的工作方式吗?

我在这里错过了什么?

有人能给我跑吗?

以下是我如何做到这一点:

我们在开发箱上使用Subversion。 一切都被检入:文档,configuration,源代码,graphics,你的名字。 只有在这种情况下,Dreamweaver才会在开发框中签入/签出。 另外签入的是构build脚本,它将所有内容复制到根目录,设置所有权和权限,并重新加载守护进程。 这太棒了,因为开发者有sudo权限来随时运行。

为了促进,我们使用一个简单的小脚本来执行一个'svn导出'到一个tarball。 tarball被手动移动到生产环境,解压缩,一个pipe理员运行构build脚本。

完全可重复和可靠。 每当我们使用它,我都会很开心。

我试图让我的脑海里围绕着工作stream程,基本上我们的人会在文件的本地副本上工作,他们会locking他们正在处理的文件,然后在完成时提交更改?

显示Dreamweaver不会强制您locking文件(我们不使用它与Subversion)。 这是有效的,因为Subversion有能力合并提交。 但是,如果在某些情况下,当一个合并不能干净地完成Subversion会给你一个冲突的消息需要注意(更新时)或阻止你的提交。 应该显示这些警报,并且可以通过Dreamweaver GUI进行处理。

然后,完成并testing后,Dreamweaver可以上传到舞台进行进一步testing,然后再次完成Dreamweaver可以上传到生产环境。 这是一个合理的工作方式吗?

可能是。 在我们类似的应用程序部署设置(dev,staging,production)中,不存在从dev到生产的同步。 同步到生产仅仅是从正在进行的任何阶段,因为这已经被客户testing和批准。 我们这样做是为了避免在生产中发现错误变化的可能性。