代码之家  ›  专栏  ›  技术社区  ›  John

Eclipse中的SVN分支(概念)

  •  2
  • John  · 技术社区  · 17 年前

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

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

    我之所以想这样做,是因为我正在开发一个包含上万个文件的大型j2ee应用程序,而整个过程似乎需要很长时间。另外,我将eclipse与subclipse一起使用(这一点我可能是错的),但是如果我在eclipse中分支一个项目,那么我将不得不设置一个新的eclipse项目来指向该分支。不幸的是,由于应用程序的大小,将这个特定项目从SVN导入eclipse需要几个小时。我花这么多时间是不现实的。

    谢谢你对这个问题的解释。

    4 回复  |  直到 17 年前
        1
  •  2
  •   Avi    17 年前

    very cheap operation ,它执行惰性(O(1)次)文件复制。

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

        2
  •  2
  •   John Feminella    17 年前

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

    我可以吗 分支文件0以便将更改提交到 文件0将更新如下内容 myrepos/Branchs/a-branch/file0但 我工作副本中的所有其他文件 就从后备箱里拿出来?

    file0 那里当您更改 trunk 将它们合并到您的分支中 你在哪里工作 文件0

    通过这种方式,您将始终获得来自的最新信息 大旅行箱 , 这将让你测试 文件0 独立于主干的变化。 svn switch 在主干和分支之间移动你的“文件镜头”(但要小心,Eclipse可能会抱怨这种诡计)。

        3
  •  1
  •   Community Mohan Dere    9 年前

    svn分支基于延迟复制机制,所以您可以安全地对所有项目进行分支:这不会花费很长时间。

    How do I branch an individual file in SVN? ,您可以分支一个子集,但我相信使用 svn:merginfo properties mechanism :如果从项目的根目录设置属性,效果会更好。

        4
  •  1
  •   sbi    17 年前

    SVN中的分支是一个O(1)操作。此外,由于SVN内部采用延迟复制,您只需为更改内容支付空间惩罚。

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

    推荐文章