【问题标题】:subversion and tortoisesvn: branching / moving directorysubversion 和 tortoisesvn:分支/移动目录
【发布时间】:2011-01-06 09:52:17
【问题描述】:

我公司的代码在 subversion 存储库中,到目前为止运行良好。我遵循了关于如何设置存储库的建议,即我有分支/标签/主干子目录。但我现在想要更有条理,有 2 个元分支,开发和发布。前者显然是为了开发目的,工程师可以尝试不同的奇怪的东西,而后者则是为了产品准备好的稳定代码。所有新功能在开发时都会首先存在于“dev”中,一旦被认为可以,它们会不时合并到“release”分支中。提交到“发布”只会来自这样的合并加上正常的错误。这些元分支中的每一个都将包含正常的分支/标签/主干子目录。

我遇到的问题是我无法终生设置它。我已经创建了 2 个元分支,将所有现有子目录移动到“dev”中,现在我想将“dev”的主干移动到“发布”主干中。但我不知道该怎么做。如果我切换(从 TortoiseSVN),它只会删除所有内容,因为“发布”主干是空的。如果我尝试从“dev/trunk”创建分支“release/trunk”,tortoisesvn 会抱怨该路径不存在。

我不知道该怎么做。这应该很简单吧?我猜很多人使用类似的组织,开发与发布?!

欢迎任何建议/cmets/想法。

提前致谢。

一个

【问题讨论】:

    标签: svn tortoisesvn branch


    【解决方案1】:

    通常这样做的方式是,项目在存储库的顶层只有一组分支/标签/主干目录。 trunk 目录您的“dev”元分支,您在 branches 目录下创建一个名为“release”的主干分支,作为您稳定的、产品就绪的分支。如果您需要跟踪多个版本(如 v1.0 和 v2.0),那么您将在 branches 下同时拥有“1.0”和“2.0”。当您准备好发布代码时,您可以使用相应发布分支中的版本号制作一个标签。

    我认为您正在尝试做的事情会使存储库结构过于复杂。您可以使用单个分支/标签/主干集实现您需要做的一切。

    也就是说,使用 TortoiseSVN 最容易创建分支,方法是将 Repo-Browser 导航到要从中复制的目录(在您的情况下为“dev/trunk”),右键单击该文件夹,选择“复制到”,并在您的情况下输入新分支(“release/trunk”)的路径。

    【讨论】:

    • 同意。它应该而且确实就是这么简单。标记您的版本并在主干中开发。
    • 很好的建议(虽然我会说它并不能真正回答问题——我认为他仍然需要知道如何在物理上完成你对 TortoiseSVN 的建议)。 +1。
    • @j_random_hacker:也添加了该建议。
    【解决方案2】:

    您描述的设置通常称为“功能分支”。 IE。你在一个单独的分支上开发了一个新特性,一旦它完成,你就将它合并回主干(它总是保持在一个稳定的版本)。存储库结构可能如下所示:

    /trunk
    /branches/featureX
    /branches/featureY
    /tags
    

    然后,功能的开发将像这样进行:

    • 您为要开发的功能创建分支(主干副本)
    • 当您在该分支上开发功能时,您可以定期将在主干上所做的任何更改合并到您的分支中。这样做是为了使主干和功能分支之间的差异尽可能小
    • 功能完成后,将分支重新集成到主干中,然后删除功能分支

    您可以在subversion bookTortoiseSVN help 中找到有关此方案以及涉及的命令的更多信息。

    【讨论】:

      【解决方案3】:

      打开 TortoiseSVN 的 Repo 浏览器(通过右键单击 Explorer 目录列表中的任意位置),导航到您的 dev 目录,右键单击它并选择“复制到...”。现在指定目的地。此操作将作为单次提交发生,因此您将被要求输入日志条目。

      我正在运行一个稍旧的 TortoiseSVN (v1.4.8),但我确信这个或类似的东西会起作用。

      【讨论】:

        【解决方案4】:

        在 Repo 浏览器中,右键单击源代码所在的目录(主干?)并选择“复制到...”。

        但您确实可能需要重新考虑结构。

        【讨论】:

          猜你喜欢
          • 2017-07-01
          • 2010-12-17
          • 1970-01-01
          • 2017-07-29
          • 1970-01-01
          • 2012-07-21
          • 1970-01-01
          • 2011-10-07
          • 1970-01-01
          相关资源
          最近更新 更多