项目管理 / 多个版本

3

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

目前,我有一个开发版本的应用程序,其中包括一些改进和新功能。同时,我必须解决一些错误。对于那些没有被新功能触及的文件,修复错误很容易,但是一旦我触及带有新功能的页面,每次都需要注释掉几行代码。我感觉这并不是最好的方法。肯定有足够好的方法来解决这个问题。

另一个问题是部署。经常情况下,我必须等待几周才能上传网站的新功能。同时,我有时会忘记哪些文件已被修改(或为了解决错误而进行了注释),这可能会导致错误。我听说过 Ruby 爱好者使用 capistrano,那能帮助我吗?我主要是 PHP/asp.net 开发人员。

4个回答

5
你正在经历的是“开发奋斗不兼容”的典型案例:
你不能在同一时间同时修复错误并开发相同的文件。
这是分支的典型案例,它允许同一个文件:
  • 冻结其状态为最初部署的状态(分支的起始点)
  • 在错误修正分支中修复错误
  • 将一些错误改进应用于当前开发分支
  • 在开发分支中开发新功能。
  • 如果您对版本控制系统(VCS)的立即设置不感到舒适,可以将代表服务器的文件树复制成2个目录(一个1.0和一个'DEV'),从而进行一些“手动”版本控制。
    然后,像WinMerge这样的工具将帮助您跟踪差异并执行一些合并操作。
    但是真正的VCS会更有效率,并且可以用作部署的稳定源,如这个Best version-control for a one-man web-app问题所示(使用svn)。
    这种版本控制的源代码也可以被像capistrano这样的部署系统使用。

    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

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


    0
    一种实现这个的方法是在你的源代码控制软件中创建一个分支。

    嗯,我考虑过这个问题...在生产服务器上安装Subversion并通过提交部署...但对我来说听起来有点奇怪。 - Erick
    您不必在生产服务器上安装Subversion。在开发机器上检出一个版本,然后通过FTP/SSH/SCP或其他方式将其传输到生产服务器即可。 - Ryan Doherty

    0

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


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接