【问题标题】:SVN Branching and working copysSVN 分支和工作副本
【发布时间】:2012-07-13 05:24:04
【问题描述】:

我想知道一些关于 SVN 的 Google 无法告诉我的事情。

我们在工作中使用 SVN 和推荐的主干/分支/标签结构。

我想知道的是,是否有必要将主干文件夹切换到分支/我的分支文件夹,或者我可以在分支/我的分支文件夹中工作并提交这些更改? 我在这里说的是物理文件夹以及进行更改的正确位置。

直到现在我们还没有真正需要创建一个分支,并且想把它做好:)

谢谢!

【问题讨论】:

标签: svn version-control tortoisesvn


【解决方案1】:

从主干创建一个分支。在您的分支中工作,根据需要进行尽可能多的提交。完成后,将所有新提交从主干合并到您的分支,解决任何冲突。一旦所有冲突(如果有的话)都得到解决并且您已经测试了您的代码,您就可以将您的分支合并到主干。

【讨论】:

  • 特别是物理工作位置,在分支文件夹 (branches/my_branch/files) 中,我可以像往常一样在主干上工作吗?
  • 对您的评论的回答是肯定的。 SVN 并不真正关心文件夹和名称。它们只是建议,在“主干”或“分支”中没有特殊含义。它们真的可以是“盒子”和“小提琴”
【解决方案2】:

切换在这里不是一个好主意。基本上,该命令用于重新定位项目。

如果你有一个分支,那么那个分支就有它自己的生命。你的主干可能在提交的功能方面领先,或者,它可能会反过来——某个分支会在某个时候领先于你的主干。如果你在你提到的上下文中使用 switch 命令,你最终会一团糟,最终必须得到一个干净的结帐。

如果您使用不同的分支,您需要了解并接受每个分支都可以被视为一个单独的主干(基于另一个主干)。因此,对您正在处理的不同分支进行单独的干净结帐

【讨论】:

    【解决方案3】:

    我认为最好的第一步是将 Subversion 的命名法和概念与您自己的相匹配,否则我认为您会陷入困境。例如 “将主干切换到分支” 没有意义。我怀疑你的意思实际上是:“切换我当前包含主干代码的工作副本,以便它包含分支代码”

    存储库存储主干和已创建的任何分支的当前状态。通常,当您想要返回以修复早期版本中的错误(例如,对于 1.0.1 版本)时,您会创建一个分支,而您在 2.0 版本的主干上进行了更多实质性更改,这太冒险而无法放入1.0.1.

    当您处理项目时,您可以从主干或分支中签出工作副本。您所做的任何提交都将在主干或您已签出的分支上结束。如果你需要在 1.0.1 分支上工作,你有两个选择:

    • 查看此分支的新工作副本。任何提交都会被推送到该分支上
    • 切换您用于主干的工作副本,使其现在跟随分支而不是主干。现在任何提交都会被推送到正确的分支上。

    您采用这两种方法中的哪一种取决于多种因素:

    • 您在工作副本中是否有尚未提交的更改。如果是这样,那么最简单的事情就是检查一个新的工作副本。如果您想切换,则可能会丢失它们,因此要么提交,要么创建一个补丁并将其放在一边
    • 创建新的工作副本是否昂贵?例如,它可能是一个非常慢的网络、一个巨大的源代码树,或者需要很多小时才能构建。如果是这样,那么您可能更喜欢切换
    • 您的项目是否依赖硬编码路径?如果您的构建脚本假定所有内容都在 c:\source 中,那么这意味着您只能拥有一个工作副本并且您必须使用切换。

    为了简单起见,我建议为分支创建一个新的工作副本。

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多