我们有一个项目和三个开发人员在舞台服务器上工作。我们想做svn如下:
当每个开发人员切换分支时,我们如何将分支链接到文档根目录(第3点)?有没有什么像后钩?如果是这样,我们怎么能这样做?我知道我们可以使用trunk添加post hook,以便它会自动更新文档根目录。但是我们不确定分支和切换是如何做到的。
答案 0 :(得分:1)
让我们解释一下如果没有这些步骤你想做什么:
注意我没有提到分支机构。您可以为每个开发人员使用分支,但没有真正的原因。只有三位开发人员,我不会为分支开发而烦恼。但是,有些人喜欢这种模式 - 特别是如果它们用于Git和Gitflow。
您可能需要的是一些可以帮助您处理的工具。这是你应该看的两个。它们都是免费和开源的:
Jenkins是一个持续集成工具。大多数人认为Jenkins是一个可以编译代码的地方,但是你的开发环境很可能不需要编译。
但是,Jenkins可以做的不仅仅是编译代码。每次提交代码时,Jenkins都可以设置为自动 build 。或者,可以在特定时间将其设置为 build ,或者在开发人员请求完成构建时。或者,这些的任何组合。
即使您没有编译,您也可能希望执行Jenkins可以作为构建过程的一部分执行的自动化测试 - 即使您实际上没有编译代码。 Jenkins还可以存储构建工件(例如您要部署的压缩文件),并且可以通过按下按钮来部署这些工件。
詹金斯有一大堆plugins可以用来增强你的构建过程。我不喜欢使用版本控制系统将文件部署到HTTP服务器。我发现使用Jenkins是一种控制部署的好方法。
我见过的大多数网站都有糟糕的开发部署环境。大多数时候,它们甚至都不存在。 Vagrant是一种轻松设置可以使用虚拟机模拟生产和测试环境的环境的方法。每个开发人员都可以拥有自己的登台服务器,而不是拥有一台登台服务器。
您使用VirtualBox之类的东西设置了一个类似于您的暂存环境的虚拟环境。完成此操作后,开发人员可以下载Vagrant文件,并自动安装并启动暂存环境。这可以允许开发人员在将代码提交到Subversion存储库之前测试他们的代码。
使用Vagrant在提交更改之前对其进行预测试可以简化您的流程。听起来你想要三个分支(每个开发人员一个)允许每个开发人员在登台服务器上测试他们的代码。使用Vagrant,开发人员可以在虚拟环境中进行暂存测试,而无需提交更改 - 无需分支。
提交后挂钩的问题在于它们会占用您的存储库,直到提交后挂钩完成。想象一下,您的提交后挂钩将更改部署到服务器上。该部署可能只需要十秒左右的时间,但这意味着每次有人将代码提交到Subversion时,每次提交都会等待十几秒钟。开发人员会对 Subversion缓慢感到不满,并且会做更少的提交。
使用像Jenkins这样的 post commit 工作(通过构建过程)意味着Subversion没有被束缚。此外,詹金斯可以使发生的事情更加明显。每个 build 都有一个控制台,可以显示正在进行的操作。如果提交后进程(一种考虑Jenkins构建的方法)失败,您可以检查日志。
答案 1 :(得分:0)
无论您是提交trunk还是分支,post-commit
钩子脚本都会在您提交时运行。在脚本中,您可以检查svnlook changed
的输出以确定您所在的分支,并将DocumentRoot链接到相应的分支。