2012-02-09 166 views
3

我对版本控制非常新,如果可能的话,我希望有一些帮助。本地,测试和生产版本控制

我想知道,这是控制3对开发环境的最佳途径:发展>测试>生产

  • 发展(本地主机环境) - 开发正在这里所做的一切工作之前的任何上传
    • 工作在特定项目的Every1应该有一个克隆这个文件夹(每个合作者,其用户,如果可能的话),用户每次推送都会发送到这里,开发pment文件夹。
  • 测试 - 应该是包含由发展并自动使用FTP子站点testing,或任何协议同步推送的数据的克隆文件夹。
  • 生产是生动的网站,发布稳定的更新。
    • 它应该是的克隆测试,还是推测试应该在这里上传数据?

怎么样的冲突问题,当用户按下文件/ s的其他用户有什么不同的推1分钟前?当然可以有任务分离,每个都做某些事情,但如果不是,如果X提交submit.php并且Y也在1分钟之前提交submit.php会怎么样?

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

回答

3

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

这意味着你:

  • 会从当地的发展推到“development”回购
  • 将从“development”推到“testing”(或更好,但对“测试任务“负责拉动development“并触发一些测试是否有任何新提交检测
  • 将从推” testing“(如果测试是确定),以生产

另外,您不会接受非远程回购非fast-forward update,这意味着任何冲突将在被推送之前先在本地解决。

+0

+1,有趣...我会查看链接 – Alex 2012-02-10 09:17:35

1

如果你有一个庞大的团队,Git是非常棒的,但是恕我直言Subversion(SVN)更容易学习,并且仍然提供了一套很好的核心功能来处理你的需求。处理上述需求的常用方法是创建一个名为'trunk','branches'和'tags'的三个文件夹的Subversion版本库。

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

基本上,所有这些子目录都可以通过SVN导出命令创建。