本地,测试和生产版本控制

时间:2012-02-09 17:43:45

标签: testing version-control versioning live

我是版本控制的新手,如果可能的话,我想提供一些帮助。

我想知道,这是控制3个开发环境的最佳方式:开发>测试>生产

  • 开发(Localhost环境) - 所有开发的工作都是在上传之前完成的
    • 处理特定项目的Every1应该克隆此文件夹(如果可能,每个协作者及其用户),用户的每次推送都将发送到开发文件夹。
  • 测试 - 应该是一个克隆文件夹,其中包含由开发推送的数据,并使用ftp或任何协议自动与子域testing同步。
  • 生产是实时网站,其中发布了稳定的更新。
    • 它应该是测试的克隆,还是推送测试应该在这里上传数据?

当用户推送的文件与其他用户1分钟前推送的文件不同时,冲突问题怎么样?当然可以有任务分离,每个都可以做某些事情,但如果没有,如果X提交submit.php怎么办?Y还提交了1分钟前的submit.php?

哪种版本的控制软件最适合?

2 个答案:

答案 0 :(得分:3)

如果您根据DVCS(Distributed Version Control System),like Git进行翻译,则每个“文件夹”都可以是代码存储库的实际克隆。

这意味着你:

  • 会从您的本地开发推送到'development'repo
  • 会从“development”推送到“testing”(或者更好的是,有'测试'的任务负责'development '并在检测到任何新提交时触发一些测试
  • 会从'testing'(如果测试没问题)推送到生产

另外,你不会接受非fast-forward update到远程仓库,这意味着任何冲突都会在被推送之前首先在本地解决。

答案 1 :(得分:1)

如果你有一个庞大的团队,Git很棒,但是IMHO Subversion(SVN)更容易学习,并且仍然提供了一套能够满足你需求的核心功能。处理上面提到的需求的常用方法是创建一个包含三个文件夹的subversion存储库,名为“trunk”,“branches”和“tags”。

  • 开发:发生在'trunk'子目录中。
  • 预发布测试:发生在智能命名的“分支”子目录中,例如'RC1-测试'
  • 稳定版本维护:发生在版本标记的“标记”子目录中,例如: '2.0'

基本上,所有这些子目录都是从你的主干中分离出来的,你可以通过SVN导出命令创建它。