如何在开发Web应用程序时正确使用svn

时间:2010-02-12 21:05:50

标签: svn

我刚刚开始熟悉svn,虽然对于“正常”的代码开发来说似乎非常简单,但是我对Web开发有点困惑。

Web开发需要Web服务器直接与源交互以测试(通常很小且非常频繁)更改,因此我猜项目的文档根目录应该是工作副本。但是每个用户都应该将自己的工作副本合并并提交到存储库,然后再导出。当您不得不一遍又一遍地调整样式表以满足所有浏览器时,整个周期显然是不可行的。

用户显然不能使用相同的工作副本(这是svn的重点),并且由于路径原因,您无法在文档根目录中检出不同的工作副本,因此使用svn和Web应用程序的最佳方式是什么发展?每个用户是否应该在客户端计算机上安装webserver / php解释器?

5 个答案:

答案 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)

根据团队规模和结构,在这种情况下不是更明智的

  • 在这种情况下,通过LAN使用相同的工作副本,并在操作系统级别使用文件锁定

  • 维护一个“工作”存储库,其中所有更改都经常被提交,以便其他人可以更新他们的工作副本,以及团队在一天结束时提交的“最终”存储库,或者达到一些预先存储库定义点?

脚本化Web应用程序通常没有构建过程。想象一下,有人在处理CSS文件,每隔几秒钟就会在浏览器中进行更改和检查。想象一下其他人在处理相关的HTML文件,做同样的事情。

如果他们有自己独立的测试环境,他们将永远无法看到对方的变化如何反映他们的工作。而且我知道如何在浏览器中调整一些CSS细节 - 它可能需要几十步才能得到正确的结果。根据团队的结构,这会使交互变得非常繁琐。

如果我错了,请随意纠正我,我在网络应用程序开发团队中没有那么多SVN经验。