1

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

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

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

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

谢谢!

4

3 回答 3

0

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

于 2012-07-13T10:58:51.733 回答
0

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

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

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

于 2012-07-13T07:58:06.353 回答
0

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

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

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

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

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

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

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

于 2012-07-13T08:27:20.683 回答