Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用SVN-VC和远程测试服务器为每个开发人员设置多开发人员。最佳实践?_Php_Svn_Branch_Collaboration_Branching Strategy - Fatal编程技术网

Php 使用SVN-VC和远程测试服务器为每个开发人员设置多开发人员。最佳实践?

Php 使用SVN-VC和远程测试服务器为每个开发人员设置多开发人员。最佳实践?,php,svn,branch,collaboration,branching-strategy,Php,Svn,Branch,Collaboration,Branching Strategy,我想了解一下具有以下要求的专业开发设置是什么样子的 几个PHP开发人员(比如PHP) 每个开发人员属于一个组 每个小组有一名组长,负责分配任务 每个开发人员在一台Windows 7计算机上工作 并使用NetBeans或Eclipse进行开发 每个开发人员“拥有”一个虚拟测试服务器,可以在其中运行代码 正在使用的VCS是SVN 有一个暂存服务器,在发布/部署产品之前对其进行最终测试 我给出了一些不太抽象的具体技术,b/c我也对插件等的具体建议感兴趣 在这种情况下,我想到了几个问题 1) 因此

我想了解一下具有以下要求的专业开发设置是什么样子的

  • 几个PHP开发人员(比如PHP)
  • 每个开发人员属于一个组
  • 每个小组有一名组长,负责分配任务
  • 每个开发人员在一台Windows 7计算机上工作
  • 并使用NetBeans或Eclipse进行开发
  • 每个开发人员“拥有”一个虚拟测试服务器,可以在其中运行代码
  • 正在使用的VCS是SVN
  • 有一个暂存服务器,在发布/部署产品之前对其进行最终测试
我给出了一些不太抽象的具体技术,b/c我也对插件等的具体建议感兴趣


在这种情况下,我想到了几个问题

1) 因此,每个开发人员都将致力于 私人部门

2) 此分支已在工作副本中签出

现在。。。此工作副本在PC上使用开发人员的IDE进行本地编辑,并在服务器上执行/测试

在这种情况下,最好/通常的方法是什么?我的意思是-如何在不造成太多开销的情况下在服务器上获得编辑过的代码

开发人员会在本地磁盘上保存代码吗?或者让IDE通过隧道或特定协议在远程虚拟服务器上写入会更好吗

3) 开发人员每天都会将自己的工作提交到位于中央存储库中的个人分支中

是否有关于存储库应该位于何处的最佳实践?独立服务器

4) 然后,在开发人员完成任务后,他/她或团队负责人将新代码合并到各自的主分支或主干中


最让人困惑的是我在2)和3)之间写的东西。因为到目前为止,我只使用本地服务器。例如,一个VM的服务器运行一个位于共享文件夹中的代码,因此我可以直接编辑它。当服务器现在实际上是远程的时候,我不知道如何有效地弥合这一差距。例如,高效意味着不必通过FTP手动上传

也欢迎外部来源或书籍推荐


编辑 我的问题是针对准标准/最佳实践。我认为这几乎是一个标准的开发场景,所以必须有一个“常规”的解决方案


编辑2 好的。。。因此,让我们尝试一幅图片:

V是一个或多个开发人员的虚拟测试服务器,D.C和C'是两个代码版本。它们应该尽可能保持一致

我想到了两个解决方案:

1:编辑C,然后上传到C',然后执行C',然后提交C

2:不存在C。只是通过一些隧道技术编辑并执行和提交的C

我的直觉告诉我这两种解决方案都是半最优的。那么什么是“专业的”/“最高效的/最快的/最方便的/最无摩擦的/最不容易出错的/最佳实践/行业标准”


有什么问题吗?

也许它没有太大的帮助,但是GIT听起来非常适合你的问题,我建议你看看GIT的功能。如果你有时间,查一下莱纳斯·托瓦尔兹,他会自言自语

您描述的标准程序大致相同。我还为我的团队介绍了这种方法。它也可以称为分阶段应用程序开发

我是这样做的,我使用一个远程SVN主机(例如:assemblia.com,unfuddle.com)来存储我的所有代码。我的团队成员将信息存储在这些远程svn服务器上。您还可以购买VPS,在那里设置SVN,并使用相同的方法

最佳实践是在本地进行测试,并尽可能多次提交,但每次提交都必须解决一个问题,或包含添加任何新功能的重要部分

一旦每个人都完成了提交,首席开发人员就可以使用PuTTY之类的工具通过SSH登录到登台服务器。第一次,首席开发人员必须将代码签出到代码所在的文件夹中。在此阶段,如果多个开发人员编辑文件的同一段,则可能会出现文件冲突。然后,首席开发人员应该首先解析代码,然后进行签出。签出后,首席开发人员只需在登台服务器上执行svn更新即可使代码更新

基本思想是让代码在本地设置上运行,然后提交并更新用于在模拟场景中测试应用程序的暂存,然后将其提交到实时站点

这里有很多if's和but's需要我写一章:)但简言之,这就是热情

工具(可用于在此设置下工作): -乌龟SVN经理 -油灰 -网虫


希望有帮助:)

我相信每个人都有不同的做事方式,但以下是我的想法

“最佳实践”可能是“持续集成”,即每个开发人员都没有自己的分支,但会签入一个共同的开发分支。这迫使他们尽早处理冲突,并相互协调,以避免首席开发人员在随后的道路上管理巨大的火车残骸合并。如果你真的想走这条路线,可以看看cruisecontrol

最好的方法是,如果他们有一个本地apache web服务器和完整的php堆栈。您可以使用Zend_Server社区版快速启动并在windows上运行。大多数标准php代码在Windows和Linux上都可以正常运行,但如果您正在执行大量文件操作、cron作业或cli之类的操作,或者需要memecache等,则会遇到不稳定性。如果是这样的话,而且Linux版的东西会对你产生影响,那么你可以使用VMWARE或VirtualBox来运行本地Linux实例,并在这些实例中安装IDE,然后