对于我们公司的网站,我们以最准确的称为持续部署的方式开发(http://toni.org/2010/05/19/in-praise-of-continuous-deployment-the-wordpress-com -story /)
我们有一个Web场,每个站点都位于两台服务器上,用于故障转移。我们希望自动化部署到我们的开发服务器,测试服务器和prod服务器的过程。网站是ASP.Net网站(不是网络应用程序)所以我们不做构建,我们只是推送页面。我们通常根据许多变量将主站点每天更改为2到20次。这些更改可以是简单的文本/ html更改,以添加新的页面/功能。
目前我们使用TFS作为源代码控制,每个站点都是自己的存储库。我们没有分支机构,您需要在需要审核时手动将更改推送到开发人员(我们在本地计算机上开发),然后在签名后检查您的更改并将其推送到prod手动(这可确保源文件是什么实际上是prod和合并发生在那时)。显然,这里存在很多错误的空间,很少发生,因为开发人员会忘记关键文件并导致整个网站崩溃。
似乎大多数部署工具都是基于构建过程构建的,因为我们需要非常灵活地满足我们的业务需求,所以我们不太可能采用这种方法。我们认为,我们真正喜欢的是以下内容:
我们已经想到了在TFS中有三个代码分支的想法,但是我们不确定你是如何从一个分支(prod)拉出来但是检查一个dev分支(我们都不是TFS大师)。
那么,其他人如何处理这种情况呢?我们不会将TFS作为源控制提供商,如果有什么东西可以做我们想要的,我们也不需要垂直解决方案,我们非常乐意插入不同的组件,只要它们可以插入,如果必须,甚至开发自己的。
提前致谢。
答案 0 :(得分:0)
我确信你可以用TFS做到这一点,但我已经成功完成了你用Mercurial所描述的内容,而且效果非常好。
使用Mercurial(我假设Git是相同的方式),你可以从一个仓库中拉出来,然后推送到另一个仓库。因此,你要从Prod中获取,进行更改,在本地提交,推送到Dev,然后在您满意的时候,将更改集推送到Prod(从Dev或Local,无关紧要)。
要开始使用,您需要一个Prod仓库,然后将其克隆到Dev repo中 - 这两个都在您的服务器上。在这一点上,他们是完全相同的。
Windows上的TortoiseHG使您能够轻松选择要与之同步的存储库。您可以将Prod和Dev repos保留在列表中,并决定在拉动或推动时使用哪一个。