PHP站点上的文件签出/版本控制

PHP站点上的文件签出/版本控制,php,version-control,Php,Version Control,我意识到这个问题已经被问了100遍,但我发现没有一个能真正回答我的问题 我们有多个开发人员在多个地点从事同一项目。有些使用Windows,有些使用Mac,我们的服务器是Linux,每个开发人员使用不同的开发应用程序(Dreamweaver、Eclipse等)。每个开发人员都在自己的计算机上运行某种形式的Apache/PHP/MYSQL,版本与我们的live server相同 在服务器上,我们有实时(无bug)站点和测试站点(每个站点都有自己的mysql数据库)。一旦在我们的测试站点上一切正常,我

我意识到这个问题已经被问了100遍,但我发现没有一个能真正回答我的问题

我们有多个开发人员在多个地点从事同一项目。有些使用Windows,有些使用Mac,我们的服务器是Linux,每个开发人员使用不同的开发应用程序(Dreamweaver、Eclipse等)。每个开发人员都在自己的计算机上运行某种形式的Apache/PHP/MYSQL,版本与我们的live server相同

在服务器上,我们有实时(无bug)站点和测试站点(每个站点都有自己的mysql数据库)。一旦在我们的测试站点上一切正常,我们就会将修改后的文件复制到实时站点

我们要找的是

  • 允许开发人员从测试站点“签出”文件,然后在使用完文件后“签入”的某种方式

  • 我们希望能够记录签出和签入的日期/时间

  • 我们还希望能够在完成测试后将选定的文件夹/文件复制到实时站点

开发人员拥有不同程度的命令行知识,从根本没有到专家

是否可能有SVN的GUI版本

我还应该补充一点,这不一定是一个免费的选择,如果这些要求有一个支付解决方案,那也可以


任何信息都将不胜感激。

SVN有许多GUI,是的,它将允许您解决列出的许多问题


Eclipse有用于SVN的插件,还有Mac和PC客户端可以很好地工作。几个月前我问了一个关于a的问题,得到了一些有用的答案。

你知道这个问题被问了很多。只要尝试一下任何主要的版本控制系统就可以了。Subversion,Git,Mercurial,TFS,任何东西。他们都会为你想做的事工作


不过,“中央存储库”位于“测试服务器”上的情况并不一定成立;您也可以从中央服务器进行另一次签出。

正如acrosman指出的,有很多(开源)GUI工具(例如,Ortoise、Subclipse(Eclipse)、Subversive(Eclipse))。我认为Subversion从来都不是一个坏选择,每次提交后运行一个钩子脚本,就可以轻松地将当前的Head版本导出到开发服务器。日志也以同样的方式工作。对我来说,最烦人的部分是使存储库中的测试数据库和配置文件保持一致。

部署到“实时”站点有两个简单的技巧:

1) 在您的“实时”站点上使用SVN客户端检查您的软件。如果要部署更改,请运行SVN UPDATE命令。(请务必告诉您的Web服务器不要提供.svn文件夹中的文件!)

2) 在“live”站点上有两个根文件夹。部署时,SVN导出到第二个文件夹中。在web服务器配置中,将文档根目录更改为第二个文件夹,然后重新启动web服务器。如果部署过程中出现了一些无法预料的问题,只需切换回第一个文件夹

一般来说,您希望开发人员只在本地环境中测试他们的更改。当需要对整个产品进行测试时,请以与“活动”服务器完全相同的方式对待“测试”服务器,最好使用相同的部署方法

并找到一个脚本迷,他可以为您自动化所有部署,或者使用springloops.com之类的工具。从长远来看,取消手动部署过程可能会让你更快乐(现在是凌晨3点,你认为你已经解决了最后一个部署问题,所以你就去睡觉了。当你在下午12:30醒来,发现你的站点整个上午都在关闭时,这种情况就会发生)


对于GUI,请使用MacOSX的scplugin,Windows的TortoiseSVN。在Eclipse中,使用一个Eclipse svn插件

用于Mac的其他SVN GUI选项包括或两者都能正常工作。如果有人使用它进行开发,它还内置了SVN支持


问题的其他方面已经得到了回答。

我们有以下设置

多个办公室中的多个用户,每个用户运行Windows(带)和WAMP或OSX(带)。这两个系统都有其他客户端,但我们选择了这些客户端

每个人都可以使用VPN访问我们的中央开发服务器

当他们在本地系统上工作时,他们会定期检查SVN(开发)服务器的更新并获取更新。在开发服务器上,我们有一个脚本设置,每x分钟运行一次,它对web根目录进行签出(只有在有新的更新时)。该脚本还使用当前的SVN修订号更新单个文件,然后在开发站点上显示该修订号,以便每个人都知道正在运行的内容以及最近更新的时间


它已经为我们工作了好几年,并且被证明是最有用的。

SVN会跟踪入住和退房日期/时间吗?SVN会帮助您跟踪谁在何时做出了什么更改。阅读一般的版本控制,这是任何一个严肃的开发团队都应该使用的工具。Dreamweaver CS4还内置了SVN功能:)我在哪里可以找到关于这个“钩子脚本”的一些信息?我已经见过它几次了。Subversion书籍非常好,应该包含您需要的所有信息或这个简短的操作方法:@razass:我们已经完成了所有这些问题,并有一个很好的“协议”到位。如果你想让我和你一起复习,请联系我。有联系方式。