如何将 SVN 中的分支和中继与开发服务器一起使用


How to use the branch and trunk in SVN with the dev server?

我用 NetBeans 在 PHP 中开发。这些修改由 NetBeans 直接上载到我计算机上的虚拟化 LAMP 开发服务器。

我想介绍一些发展。

问题是只有中继被发送到服务器。

我使用经典结构:

{svnroot}/trunk 
{svnroot}/branches 
{svnroot}/tags 

如何在不进行疯狂的分支/主干交换(具有所有可能的冲突)的情况下测试分支?

  • 是否有具有 htaccess 配置的解决方案?
  • 我应该以不同的方式使用 SVN 吗?
  • 我是否应该以不同的方式使用 NetBeans?

大多数SVN设置都有一些顶级目录

{svnroot}/trunk
{svnroot}/branches
{svnroot}/tags

如果缺少"分支"顶级目录,请添加它。 然后使用svn copy从"主干"复制所有内容。

如果您的 Web 服务器以

这样的方式提取代码,将您的"分支"目录拉入 Web 服务器,这就是与您的 Web 服务器有关的部署问题,无论谁设置它都需要修复它。

有时,一个人通过将代码直接svn checkout到 Web 服务器中来回避发布计划。 虽然这适用于非常有限数量的情况,但它会降低您处理未来事件的能力,而无需迁移到更复杂的发布计划。 如果您的环境倾向于执行此类操作,则可以通过有选择地仅签出"trunk"的子内容来继续遵循您的计划,或者您可以迁移到发布的适当"构建",然后通过"部署计划"。

如果您缺少"trunk"目录,

则在尝试任何操作之前,您可能必须创建"trunk"目录并将所有当前内容移动到其中。 这意味着所有开发都需要从"trunk"子目录而不是{svnroot}目录中签出。 这是通过扩展您的 URL(在末尾添加"/trunk")来完成的。

我希望这能让你沿着正确的道路思考。

您可以将所有内容签出到 Web 服务器上,并使用符号链接(或与 Windows 服务器的交接点 - 请参阅 www.sysinernals.com 中的联结.exe)在测试/生产环境之间切换。 或者,是的,您可以使用 .htaccess 来更改您的 Web 根目录指向的位置。 正如其他人所说,拥有单独的测试/生产服务器通常是一个好主意。