项目管理/多个版本

时间:2009-04-20 06:05:46

标签: php version-control deployment project-management versioning

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

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

问题的另一方面是部署。我经常需要等待数周才能在网站上上传新的功能。与此同时,我倾向于忘记每个已被修改(或注释为错误)的文件,并且它可能会产生错误。我听说过红宝石粉丝的capistrano,能帮助我吗?我主要是PHP / asp.net开发者。

4 个答案:

答案 0 :(得分:5)

您正在经历“不兼容开发工作”的经典案例:
你不能同时修复一个bug并在同一个文件上开发。

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

  • 将其状态冻结到最初部署的状态(分支的说明点)
  • 修复错误修正分支中的错误
  • 将一些错误改进当前的开发分支
  • 在开发分支中开发新功能。

如果您不习惯立即设置VCS(版本控制系统),您至少可以将代表您服务器的文件树复制到2个目录中(一个1.0和一个{{1} }'),有效地进行一些“手动”修订控制 然后像WinMerge这样的工具可以帮助您跟踪差异并进行一些合并

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

答案 1 :(得分:4)

大多数版本控制系统都能够“分支”您的软件,这样您就可以同时拥有相同代码库的多个版本。

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

以下是对subversion分支的一个很好的描述。

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

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

答案 2 :(得分:0)

执行此操作的一种方法是在源代码管理软件中创建分支。

答案 3 :(得分:0)

源控制系统是您的解决方案。他们中的大多数都有办法处理项目的不同版本,例如perforce,svn等。您可以使用Perforce中的分支创建任意数量的版本。任何版本的任何更改都需要合并到所有更高版本。我发现peforce merge很舒服。每个新版本都从其早期版本的副本开始。您可以开发一些控制脚本并配置perforce,这将警告对更高版本中未执行的先前版本的任何更改。