【问题标题】:SVN Branching in Eclipse (Conceptual)Eclipse 中的 SVN 分支(概念)
【发布时间】:2009-07-22 15:49:09
【问题描述】:

我了解分支和合并的基本概念。我发现的所有解释都是关于分支整个主干以创建一个分支项目并对其进行处理,然后将其合并回来。是否可以分支项目的子集?

我认为一个例子可以帮助我最好地解释我想要做什么。假设我有一个包含十个文件 file0 到 file10 的应用程序。所有文件都是相互依赖的,并且能够测试任何一个文件,所有其他文件都需要包含在构建中。我想处理file0,但不需要对file1 到file10 进行更改。我可以对 file0 进行分支,以便提交给 file0 的更改将更新 myrepos/branches/a-branch/file0 之类的内容,但我的工作副本中的所有其他文件都只是来自主干吗?

我想这样做的原因是我正在开发一个包含数万个文件的大型 j2ee 应用程序,而且似乎对整个事物进行分支需要很长时间。另外,我正在使用带有 subclipse 的 eclipse(我可能对此错了),但似乎如果我在 eclipse 中分支一个项目,那么我将不得不设置一个新的 eclipse 项目以指向该分支。不幸的是,由于应用程序的大小,将这个特定项目从 SVN 导入到 eclipse 需要几个小时。花这么多时间对我来说是不现实的。

我想我的概念可能有误。也许分支整个项目根本不需要新的工作副本?

感谢您对此问题的任何启发。

【问题讨论】:

    标签: eclipse svn branch subclipse


    【解决方案1】:

    在 Subversion 中对整个(甚至)非常大的树进行分支是 very cheap operation,它执行惰性(O(1) 时间)文件复制。

    您不一定要更改整个工作副本以仅处理一个已更改的文件。您可以使用svn switch 将工作副本中的一个文件或一个目录切换为分支上文件的签出版本。

    【讨论】:

    • 这就是你的解决方案 quadelirius。分支整个项目(快速,正如所有其他回答者所指出的那样),并使用 svn switch 更改为您关心的文件。没有额外的工作副本空间。只是当您想返回主干时不要忘记将它们切换回来。
    • 是的,我现在在 eclipse 中尝试这个,它的效果正是我担心的。分支立即发生,但 svn 开关现在可能已经运行了 5 或 6 分钟,因为 eclipse 决定需要重建整个项目。
    • 25 分钟的日食仍然没有反应。
    【解决方案2】:

    在 Subversion 中,创建分支只是创建目录层次结构的副本。因此,您可以分支一个子集,但前提是该子集可以由目录层次结构定义。

    我可以吗 分支 file0 所以更改提交到 file0 将更新类似 myrepos/branches/a-branch/file0 但是 我的工作副本中的所有其他文件 将只是从后备箱?

    回答这个问题:不,您不能分支单个文件。但是,我认为您想要做的是创建一个分支并在那里处理file0。当您对trunk 文件进行更改时,您只需将它们合并到您正在处理file0 的分支中

    这样,您将始终拥有来自trunk 的最新信息,可以让您独立于主干测试file0 的变化。 然后您可以使用svn switch 移动您在主干和分支之间的“文件镜头”(但请注意,Eclipse 可能会抱怨这种恶作剧)。

    【讨论】:

      【解决方案3】:

      svn 分支基于惰性复制机制,因此您可以安全地分支您的所有项目:这不会花费很长时间。

      正如问题“How do I branch an individual file in SVN?”中所述,您可以分支一个子集,但我相信这对svn:merginfo properties mechanism 来说是危险的:从项目的根目录设置属性会更好。

      【讨论】:

      • 服务器上不需要很长时间。它确实需要一个额外的工作副本,这似乎是提问者试图避免的。
      • @quark,是的,我不想每次我想要分支时都重新导入这个项目,但这听起来像是唯一的工作方式。
      【解决方案4】:

      SVN 中的分支是一个 O(1) 操作。此外,由于 SVN 内部采用了惰性复制,因此您只需为更改的内容支付空间损失。

      如果您不确定,为什么不继续分支整个项目呢?

      (正如夸克所说,分支大项目的一个问题是,如果您并行检出多个分支/主干,这可能会占用大量本地磁盘空间。)

      【讨论】:

      • 再次注意他对工作副本的评价。如果工作副本大小不是问题,那么这是一个很好的建议。但是对于非常大的工作副本,这可能是个问题。
      • 只有在并行检查它们时才会出现问题。请注意,他写了关于分支之间的切换。但是,我同意需要提示有关工作副本大小的提示。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 2015-07-15
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多