3

我在这里寻找关于如何管理多个版本的projet的一些提示和技巧。项目管理/多个版本

目前我有一个应用程序的开发版本,其中包括一些改进和新的功能。同时我必须做一些错误解决。很容易修复新功能没有触及的文件上的错误,但只要我触及具有新功能的页面即可。我需要每次评论几行代码。我觉得这不是最好的玩法。必须有足够的方法来解决这个问题。

问题的另一方面是部署。我经常需要等上几个星期才能在网站上传新的功能。与此同时,我倾向于忘记每个已修改的文件(或对错误进行评论),并且可能会产生错误。我听说过红宝石粉丝的capistrano,可以帮助我吗?我主要是PHP/asp.net开发人员。

回答

5

您所遇到的“不相容发力”的经典案例:
你不能同时修复bug上,而在同一时间同一文件的制定。

这是分支一个经典案例,这将允许同一个文件:

  • 冻结状态最初部署(说明点为分公司)
  • 修复了一个在一个bugfix分支
  • 将这些bug中的一些改进到当前的开发分支中
  • 在开发分支中开发新功能。

如果你不舒服与VCS(版本控制系统)的直接安装,你至少可以复制代表你的服务器的文件树成2个目录(一个1.0和一个“DEV”),有效做一些“手动”修订控制。
然后,像WinMerge的工具将帮助您跟踪的差异,做一些合并

但真正的VCS会更有效率,并且可以作为部署的稳定来源,由该Best version-control for a one-man web-app问题,如图所示(以颠覆)。
该版本控制源也可以由像capistrano这样的部署系统使用。

0

这样做的一种方法是在您的源代码管理软件中创建一个分支。

+0

哼哼嗯,我想过了......在生产服务器上安装subversion并通过提交进行部署......但对我来说听起来有点奇怪。 – Erick 2009-04-20 06:11:37

+0

您不必在生产服务器上安装Subversion。在开发机器上签出一个版本,并在生产服务器上检查ftp/ssh/scp /不管它。 – 2009-04-20 06:13:08

4

大多数版本控制系统都具有“分支”软件的能力,因此您可以同时使用相同代码库的多个版本。

例如,您的“1.0”分支可能是当前的生产版本。对于新的开发,您可以创建一个“1.1”分支,该分支从1.0开始。你所有的新功能都应该在1.1版本中,任何生产bug修复都应该在1.0版本中(最终也会是1.1版本)。通常有工具可用于合并分支之间的更改(例如,将错误修复从1.0合并到1.1)。

这是对颠覆分支的很好的描述。

http://svnbook.red-bean.com/en/1.1/ch04.html

查看当前的版本控制系统,它处理如何分支。

0

源代码管理系统是您的解决方案。他们中的大多数人都有办法处理不同版本的项目,例如perforce,svn等。您可以使用Perforce中的分支创建任意数量的版本。任何版本中的任何更改都需要合并到所有更高版本中。我发现peforce合并非常舒服。每个新版本都从其早期版本的副本开始。您可以开发一些控制脚本并配置perforce,以便在更高版本中提醒以前版本的任何更改。