Svn 几个开发者和一个Subversion';s工作文件夹

Svn 几个开发者和一个Subversion';s工作文件夹,svn,Svn,我们正在处理大型脚本语言网站,很难在每个开发人员工作站上部署。有没有人会遇到这样的情况:几个开发人员必须在服务器上的one subversion工作文件夹中工作?这听起来是错误的。您将如何管理单独的登录和并发更改?使用多个WC来保持你自己的理智 看起来你从源代码管理中拿走了60%的好东西,然后扔掉了 “…几个开发人员必须在one subversion的工作文件夹中工作…” 不,他们不必。那只是滥用风投 如果你这样做,它会受伤的。如果你不想受伤,就不要这样做。就这么简单 (现在,如果您告诉我们您认

我们正在处理大型脚本语言网站,很难在每个开发人员工作站上部署。有没有人会遇到这样的情况:几个开发人员必须在服务器上的one subversion工作文件夹中工作?

这听起来是错误的。您将如何管理单独的登录和并发更改?使用多个WC来保持你自己的理智

看起来你从源代码管理中拿走了60%的好东西,然后扔掉了

“…几个开发人员必须在one subversion的工作文件夹中工作…”

不,他们不必。那只是滥用风投

如果你这样做,它会受伤的。如果你不想受伤,就不要这样做。就这么简单


(现在,如果您告诉我们您认为他们必须这样做的原因,我们可能会为您指出一个解决方案。)

设置一个自动集成工具,该工具将在每次提交时使用最新版本更新您的测试服务器。这样,每个开发人员都可以在本地编辑并提交。请参见巡航控制以了解此类工具的示例。

正确的方法是每个人都有自己的工作副本。如果您希望在有人提交文件时自动更新网站,那么在Subversion服务器上,设置提交后钩子脚本,该脚本将ftp或scp(或任何协议)文件传送到web服务器


我做过几次,效果很好。Subversion设计用于执行类似操作。

您可以设置与生产服务器相同的开发服务器,并让每个用户使用SVN客户端将文件签出到开发服务器上自己的目录中。远程编辑和测试文件,然后提交回存储库,并导出(或签出)当您准备发布一个发布版本时,就可以开始生产。

在您的组织中,似乎存在更改控制恐惧以及缺乏持续集成实践,这使得扩展开发和灾难恢复变得更加困难

您需要说服您的利益相关者,您的开发人员应该从一个分支工作,并且您的生产环境应该有一种可编写脚本的部署方式。如果您需要专有安装程序(ISS等),那么让部署脚本与默认安装以及生产系统一起工作

开发人员对分支进行更改,他们可以使用持续集成方法将该分支部署到测试/登台服务器。然后,当您的涉众接受登台服务器的操作时,您将更改部署到生产服务器。如果部署失败,那么任何灾难恢复也将失败。如果您的灾难恢复失败,那么您的源代码管理技术对您的组织没有任何价值。灾难恢复需要成为验收测试的一部分


即使三个开发人员轮流在一个工作站上工作,这个工作站也可以作为暂存服务器。每个服务器都有自己的用户帐户和独立的工作目录,而临时服务器只是一个集中的目录。

如果这样做,您将陷入痛苦的境地。你几乎失去了拥有风投的所有优势。本质上,您已经将SVN降级为备份工具的角色。这不是风投应该做的。而且,一旦您有多个客户同时在同一个WC上工作,您就会遇到麻烦。至少,会有锁争用,需要您运行“svn清理”。如果您通过网络共享访问WC,结果可能会非常糟糕,因为SVN的锁定机制无法通过网络共享工作。您将破坏WC,可能会以不明显的方式导致错误的更改包含在后续提交中。SVN文档警告不要在网络共享上使用多个客户端


保存自己的版本控制问题、开发人员通信问题和集成问题,并为每个开发人员提供自己的工作场所。要么在主服务器上有单独的目录,要么(甚至更好)将它们设置为在本地运行站点。使用共享WC,您永远不会发现集成/部署问题,而使用共享服务器,您仍然会错过一些问题。

正如大家所指出的,您正在放弃使用建议的设置进行版本控制的好处,这使得开发人员的生活持续困难(而不是一次性修复此问题的成本),冒着严重损失的危险。不要这样做

如果很难在工作站上部署(可能是因为有很多软件具有敏感的配置),那么我可以看到两个很好的选择:

  • 在服务器上为每个开发人员提供他们自己的私有空间,只有开发团队才能访问。这意味着服务器配置只需要完成一次,但每个开发人员都可以在不破坏任何东西的情况下私下工作
  • 拍摄生产服务器的映像,并对其进行足够的修改,使其能够在每个开发人员工作站上的VM中运行。将其用于本地部署,然后从存储库部署到生产服务器

  • 谢谢你的回答。我们的网站正在使用一些特定的软件,我们不可能在开发者工作站上部署这些软件。是的,所有开发人员都有自己的SVN登录名,但是目前他们必须在服务器上的一个工作文件夹上工作。主要问题:当几个开发人员执行几个不同的任务时,如何保持SVN和工作文件夹的同步

    为了澄清您的意思,您不是让每个开发人员使用subversion客户端访问存储的代码/网站,而是让他们在服务器上工作?所以您采用了多用户源代码控制系统,然后通过自己处理文件来绕过它?重点是什么?听起来你是说很难在本地开发者machin上复制你的站点