【问题标题】:How to use the branch and trunk in SVN with the dev server?如何在开发服务器上使用 SVN 中的分支和主干?
【发布时间】:2012-04-20 16:17:34
【问题描述】:

我使用 NetBeans 在 PHP 中进行开发。修改由 NetBeans 直接上传到我机器上的虚拟化 LAMP 开发服务器。

我想分支一些发展。

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

我使用的是经典结构:

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

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

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

【问题讨论】:

    标签: php svn netbeans tortoisesvn


    【解决方案1】:

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

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

    如果您缺少“分支”顶级目录,请添加它。然后使用svn copy复制“trunk”中的所有内容。

    如果您的网络服务器以这样一种方式提取代码,即您的“分支”目录被拉入网络服务器,那么这就是与您的网络服务器有关的部署问题,任何设置该问题的人都需要修复它。

    有时,一个人会通过将代码的svn checkout 直接写入 Web 服务器来回避发布计划。虽然这适用于非常有限的情况,但它会降低您处理未来事件的能力,而无需迁移到更复杂的发布计划。如果你的环境倾向于做这样的事情,你可以通过选择性地只检查“主干”的子内容来继续遵循你的计划,或者你可以迁移到你的版本的适当“构建”,然后通过“部署计划”。

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

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

    【讨论】:

    • 我有这个经典的设置(主干+分支+标签)。问题是只有主干被发送到网站根目录。那么如何在开发 Web 服务器上测试我正在处理的分支呢?我是否应该发送整个 svnroot 并使用 apache 配置来处理要测试的站点版本,例如:branch11.myproject.devbranch12.myproject.dev 等?
    • 您需要设置自己的 Web 服务器,然后将分支签出到该 Web 服务器。
    • 那么所有的分支、标签和主干都应该推送到Web服务器上?我们必须通过 url 重写来处理所有子域。听起来很奇怪...必须存在更简单的解决方案...
    • @Toto,不,所有的分支标签等不应该推送到网络服务器。您应该签出您的特定分支并将该特定分支部署到您的测试网络服务器,您将使用它来验证在中完成的开发您的特定分支
    • 因此,每次我在不同的分支上工作时,我都必须更改 Netbeans 中的项目属性(项目属性 > 源 > Web 根),并且必须上传整个分支以进行同步......如果我没看错……
    【解决方案2】:

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

    【讨论】:

    • 我无法将整个 SVN 数据库检出到网络服务器。数据太多,处理子域太复杂,url重写与这样的配置冲突。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 2010-10-27
    • 2020-05-03
    相关资源
    最近更新 更多