简体   繁体   English

我们如何有效地对包含多个子应用程序的大型Web应用程序进行版本控制?

[英]How can we effectively version a large web application consisting of multiple sub-applications?

I'm part of a team that operates a portal for our company. 我是为我们公司运营门户网站的团队的成员。 There are ~200 small, what we call applications, inside of the portal. 门户内部有大约200个我们称为应用程序的小程序。 One may be to submit receipts, another to submit a timesheet, another to see activities going on, etc. 一种可能是提交收据,另一种是提交时间表,另一种是查看正在进行的活动,等等。

Each of these applications is fairly separate from the others, so we've created individual trunk/branch/tags folders for each of them. 这些应用程序中的每一个都与其他应用程序完全分开,因此我们为每个应用程序创建了单独的中继/分支/标签文件夹。 This way they can be developed and released individually without everybody on the team having to agree on a time to deploy the entire portal at once. 这样,就可以单独开发和发布它们,而团队中的每个人都不必同意一次部署整个门户的时间。 Keeping each dev instance of the portal up to date is nearly impossible, because the only way to get it to fit is to check out each trunk into a subfolder. 使门户的每个dev实例保持最新几乎是不可能的,因为使其适合的唯一方法是将每个主干检入子文件夹。

This is nice from a separation point of view, but is very messy when we want to set up a new developer with a copy of the entire application to run on their local machine. 从分离的角度来看,这很好,但是当我们想用整个应用程序的副本来建立一个新的开发人员以在其本地计算机上运行时,这非常混乱。

Do we need to just write a sophisticated huge build script to take each trunk and place its contents in the appropriate location in the context of the web application? 我们是否需要编写一个复杂的大型构建脚本来接管每个主干并将其内容放置在Web应用程序上下文中的适当位置?

Probably you need to create a separate branch ( say "portal") which can have svn:externals to all the other other application. 可能您需要创建一个单独的分支(例如“ portal”),该分支可以具有svn:externals到所有其他其他应用程序。 This way checking out portal will give you the whole environment. 通过这种方式检出门户网站将为您提供整个环境。 You can extend this idea and branch/tag portal itself. 您可以扩展这个想法,并分支/标记门户网站本身。 Writing a script to set the svn:externals for creating a "portal" branch might be a good idea too. 编写脚本来设置svn:externals来创建“门户”分支可能也是一个好主意。

A script to setup the initial environment is probably the best. 设置初始环境的脚本可能是最好的。 Solutions like using Subversion itself to set it up fail once you start switching to branches. 一旦开始切换到分支,使用Subversion本身进行设置等解决方案就会失败。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM