如何最好地实现Web开发的版本控制?

时间:2009-09-02 15:50:20

标签: version-control

版本控制系统在开发项目中显然很重要,但在Web开发项目中使用似乎更复杂,需要使用Web服务器来运行除最简单的Web应用程序之外的所有项目。

考虑到这一点,我环顾四周,发现了一些在Web开发项目中使用版本控制的不同方法:

  1. 为每个开发人员提供一个虚拟机,该虚拟机是开发服务器的复制,并让开发人员在虚拟机中运行其应用程序的工作副本。

  2. 让每个开发人员在开发服务器上使用子域,例如john.project.com并将应用程序的工作副本签出到子域指向的目录。

  3. 使用版本控制系统签出代码,进行更改,提交代码,然后在开发服务器上检查它(指向存储库的负责人)。

  4. 我可以看到1的缺点是创建虚拟机所需的额外时间,并确保虚拟机与开发服务器保持同步(还需要(?)连续更改开发人员主机文件以指向虚拟机而不是开发服务器。)

    如果在网站中使用绝对URL,我可以看到2可能存在问题,除非有一种简单的方法来更新配置以使用新的子域。

    3是最容易设置的,但相当原始,对于开发人员来说,在每次更改后继续检查代码可能会变得相当繁琐。

    stackoverflow的用户如何使用Web开发项目的版本控制以及哪种方法/工作流最有效。

    还请包括我没有想过/读过的额外方法。

3 个答案:

答案 0 :(得分:2)

尝试1 + 3的组合。

#1:为每个开发人员提供一个虚拟机,该虚拟机是开发服务器的复制,并让开发人员在虚拟机中运行其应用程序的工作副本。

我不喜欢虚拟机 - 可能只是因为我正在运行服务器运行的相同操作系统。更新并保持同步是我自己可以完成的任务(每周一次:“只需安装包XYZ”)。每个月左右,您可以冻结VM进行备份(或者给新开发人员)。

这是开发人员的最佳方法。他不必等待提交/部署发生。更改一行代码,保存文件,在浏览器中按F5,完成。为了获得最佳效率,这是最佳选择。

#3:使用版本控制系统签出代码,进行更改,提交代码,然后在开发服务器上检查它(指向存储库的头部)。

我真的建议设置一个临时/开发服务器。每次有人提交版本控制时,服务器应自动获取最新版本并重新启动Web服务器。通过这种方式,其他人可以查看正在运行的产品并提供反馈。

答案 1 :(得分:0)

您似乎遗漏了另一个选项,这对大多数ASP.NET .NET开发人员来说很常见。

4)将源代码从存储库中拉出来,在本地开发,然后重新检入。这与VM方法完全相同,只是没有VM。在ASP.NET中,您可以在本地使用IIS或使用Visual Studio开发服务器。

答案 2 :(得分:0)

您所说的不仅是版本控制,还有构建服务器。

这取决于你写的是什么语言,如果它是java而不是带有SVN / Github的CruiseControl,如果它是c#那么Team Foundation Server或CruiseControl.Net with SVN / GitHub

大多数版本控制系统允许您进行分支和合并,然后使用构建服务器,您可以将其部署到您喜欢的任何Web服务器。这应该是你单独的开发人员子域。