版本控制系统在开发项目中显然很重要,但在Web开发项目中使用似乎更复杂,需要使用Web服务器来运行除最简单的Web应用程序之外的所有项目。
考虑到这一点,我环顾四周,发现了一些在Web开发项目中使用版本控制的不同方法:
为每个开发人员提供一个虚拟机,该虚拟机是开发服务器的复制,并让开发人员在虚拟机中运行其应用程序的工作副本。
让每个开发人员在开发服务器上使用子域,例如john.project.com并将应用程序的工作副本签出到子域指向的目录。
使用版本控制系统签出代码,进行更改,提交代码,然后在开发服务器上检查它(指向存储库的负责人)。
我可以看到1的缺点是创建虚拟机所需的额外时间,并确保虚拟机与开发服务器保持同步(还需要(?)连续更改开发人员主机文件以指向虚拟机而不是开发服务器。)
如果在网站中使用绝对URL,我可以看到2可能存在问题,除非有一种简单的方法来更新配置以使用新的子域。
3是最容易设置的,但相当原始,对于开发人员来说,在每次更改后继续检查代码可能会变得相当繁琐。
stackoverflow的用户如何使用Web开发项目的版本控制以及哪种方法/工作流最有效。
还请包括我没有想过/读过的额外方法。
答案 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服务器。这应该是你单独的开发人员子域。