我和我的兄弟和朋友一起经营着一家小型的网络开发公司。在进行了广泛的研究之后,我决定使用subversion进行版本控制。
下面是我目前计划如何运行典型的开发。请记住,我们每个人都在一个单独的地点。
我建立了一个使用hosting循环(springloops.com) subversion托管的帐户。每次我在新项目上工作时,我都会为它创建一个存储库。因此,让我们说,在本例中,我正在研究site1。我想在互联网上有三个版本的网站:
每个网站开发机器(在每个位置)将有一个本地副本的xamp运行虚拟主机,以允许多个网站的工作。本地副本的根设置为与subversion存储库的本地副本相同。这是设置,以便我们可以作出小调整,并立即预览他们。当完成了一些工作后,将提交到站点的存储库。我将让开发站点自动被推送(它的一个选项在option循环中)。然后,每当我觉得我准备推到客户网站时,我就会这样做。最后阶段是推到现场。
现在,我对这些工作流程有几点担忧:
发布于 2010-03-30 02:14:06
1)考察了连续集成的概念。(小型项目CI服务器有12种免费服务,例如TeamCity)
2)有1.准备部署过程,使其能够针对您的三个环境中的任何一个。
3)考虑始终检查部署位置上的用户是否可以访问.svn文件,因为它确实不安全。
还阅读一些关于在SVN中使用标记/分支的内容。
接下来,我将提出以下工作流
第一种情况(简单),每个人都进行结账,并在本地副本上工作。在完成了(经过良好测试的)大量新功能之后,您的触发器(可能会自动)预览以进行全面的预览测试,从而触发生成生成。
第二种情况(更好),每个人都会在每一个相当大的变化中创建一个分支,并且可以自由地将任何东西合并到自己的分支中。在拥有分支稳定分支之后,将其合并到主干,哪些触发测试机器进行签出并构建您的名称预览和标记一个综合测试预览到发布分支。
有这么多分支是指能够同时存储个人变更、历史和稳定构建。
发布于 2010-03-30 02:34:47
对于分布式版本控制系统,有比subversion更好的版本控制解决方案,我强烈建议研究以下几种方案之一:
有关一些不科学的讨论,请参阅这里、这里和这里
此外,正如vittore所说,我认为CI解决方案非常有用,它可以使您从dev环境自动化到“生产”,客户可以在成功的构建/测试周期中看到它。
发布于 2010-03-30 07:09:08
您不希望将存储库的根用作工作副本的根。这使得以后不可能真正使用分支。(否则你总是会让所有的分支机构在本地结账。)制作Subversion的廉价拷贝,在工作副本中很昂贵)
https://stackoverflow.com/questions/2542281
复制相似问题