使用开发、准备、生产服务器和 SVN 的最佳实践

使用开发、准备、生产服务器和 SVN 的最佳实践

我们的开发团队在数据中心拥有一个实时服务器,以及一个现场开发和暂存服务器

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

我们在开发箱上运行着 Subversion

我们使用 Dreamweaver CS5

据我了解,Dreamweaver 可以连接到 Subversion 存储库并管理检查/签出等,我们还可以指定与暂存和生产服务器的连接

我正在努力弄清楚工作流程,本质上我们的员工将处理文件的本地副本,他们会锁定正在处理的文件,然后在完成后提交更改吗?

然后,当完成并测试后,Dreamweaver 可以上传到暂存区进行进一步测试,然后再次完成后,Dreamweaver 可以上传到生产区。

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

我这里遗漏了什么吗?

有人可以给我简单介绍一下吗?

答案1

以下是我的做法:

我们在开发机上使用 Subversion。所有内容都会被签入:文档、配置、源代码、图形,等等。只有在这种情况下,Dreamweaver 才会在开发机上签入/签出。还会签入构建脚本,它将所有内容复制到根目录、设置所有权和权限,并重新加载守护进程。这很棒,因为开发人员有 sudo 权限,可以随时运行它。

为了推广,我们使用了一个简单的小脚本,将 'svn 导出' 到 tarball。tarball 被手动移动到生产环境、解压,然后管理员运行构建脚本。

完全可重复且可靠。每次使用它我都感到很开心。

答案2

我正在努力弄清楚工作流程,本质上我们的员工将处理文件的本地副本,他们会锁定正在处理的文件,然后在完成后提交更改吗?

看来 Dreamweaver 不会强制您锁定文件(我们不将其与 Subversion 一起使用)。这有效是因为 Subversion 具有合并提交的功能。但是,如果在某些情况下无法顺利完成合并,Subversion 会向您发送冲突消息,要求您注意(更新时)或阻止您的提交。这些警报应该会显示出来,并能够由 Dreamweaver GUI 处理。

然后,完成并测试后,Dreamweaver 可以上传到暂存区进行进一步测试,然后再次完成时,Dreamweaver 可以上传到生产区。这是一种合理的工作方式吗?

有可能。在我们类似的应用程序部署设置(开发、准备、生产)中,没有从开发到生产的同步。​​与生产的同步仅来自准备阶段的内容,因为这些内容已经过客户测试和批准。我们这样做是为了避免任何错误更改进入生产阶段的可能性。

相关内容