我刚刚开始熟悉svn,虽然对于“正常”的代码开发来说似乎非常简单,但是我对Web开发有点困惑。
Web开发需要Web服务器直接与源交互以测试(通常很小且非常频繁)更改,因此我猜项目的文档根目录应该是工作副本。但是每个用户都应该将自己的工作副本合并并提交到存储库,然后再导出。当您不得不一遍又一遍地调整样式表以满足所有浏览器时,整个周期显然是不可行的。
用户显然不能使用相同的工作副本(这是svn的重点),并且由于路径原因,您无法在文档根目录中检出不同的工作副本,因此使用svn和Web应用程序的最佳方式是什么发展?每个用户是否应该在客户端计算机上安装webserver / php解释器?
答案 0 :(得分:3)
每个开发人员都有一个带IDE的工作站,一个本地Web服务器和SVN客户端工具。 webapp在每个工作站中签出,因此开发人员可以将更改提交回仓库。
答案 1 :(得分:2)
总之,是的。
您的开发环境需要与生产环境分开。一旦您在计算机上测试了更改,就可以将其提交给SVN。要查看其他人所做的更改,请更新您的工作副本。
然后,当您想要发布时,您可以从SVN导出到生产服务器(或测试服务器以进行QA攻击)。
答案 2 :(得分:1)
我总是在每个用户都有自己的webserver / php解释器的情况下完成它,尽管你需要的只是你自己的apachectl传递用户的特定httpd.conf。然后每个用户都需要自己的httpd.conf。所以你需要复制的是httpd.conf和apachectl,每个人都可以共享相同的apache安装。
答案 3 :(得分:1)
使用Web开发与任何其他类型的源(如胖客户端)相比,没有什么不同。它们都是一样的:
开发中的所有软件都应至少有三个不同的实例:
如果您直接对生产副本进行“开发”更改,通常会将其视为鲁莽。它可能看起来很快,但你并没有正确地考虑“风险”(并且有一天它会咬你)。如果您只是在开发中的服务器开发人员之间共享Web服务器,那么您仍然会遇到麻烦。
每个开发实例都应该拥有自己的“完整”环境。也就是说,每个开发人员都应该拥有自己的Web服务器,自己的源代码,自己的配置等。使用存储库将它们整合在一起,这就是它的一部分工作。开发结构应与“尽可能接近”的测试和生产结构相匹配。它减少了安装过程中的错误。
答案 4 :(得分:0)
根据团队规模和结构,在这种情况下不是更明智的
或
脚本化Web应用程序通常没有构建过程。想象一下,有人在处理CSS文件,每隔几秒钟就会在浏览器中进行更改和检查。想象一下其他人在处理相关的HTML文件,做同样的事情。
如果他们有自己独立的测试环境,他们将永远无法看到对方的变化如何反映他们的工作。而且我知道如何在浏览器中调整一些CSS细节 - 它可能需要几十步才能得到正确的结果。根据团队的结构,这会使交互变得非常繁琐。
如果我错了,请随意纠正我,我在网络应用程序开发团队中没有那么多SVN经验。