SVN分支和工作副本

时间:2012-07-13 05:24:04

标签: svn version-control tortoisesvn

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

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

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

到目前为止,我们还没有真正需要创建一个分支,并且想要做到正确:)

谢谢!

3 个答案:

答案 0 :(得分:0)

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

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

如果您正在使用不同的分支机构,则需要了解并接受每个分支可以被视为单独的分支(基于另一个分支)。因此,对您正在处理的不同分支机构进行单独的清理检查

答案 1 :(得分:0)

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

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

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

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

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

  • 您是否对尚未提交的工作副本进行了更改。如果是这样,那么最简单的方法就是检查一份新的工作副本。如果你想切换那么你就有可能失去它们,所以要么提交,要么创建一个补丁并把它放在一边
  • 创建新的工作副本是否昂贵?例如,它可能是一个非常慢的网络,一个巨大的源树,或者需要花费很多时间来构建。如果是,那么您可能更喜欢切换
  • 您的项目是否依赖于硬编码路径?如果您的构建脚本假设所有内容都在c:\source中,那么这意味着您只能拥有一个工作副本,并且您必须使用切换。

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

答案 2 :(得分:0)

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