我们为什么要使用svn开关?

时间:2012-10-10 07:38:59

标签: svn

我有分支,标签和主干的svn repo 现在当我创建新的分支时, 是否必须使用svn切换到该分支? 我不应该直接在该分支目录上工作吗?

对不起,如果它听起来很愚蠢。

3 个答案:

答案 0 :(得分:5)

那么,SVN Switch功能并没有那么无用。

有时,您可能会在版本的多个分支中拥有庞大的代码库。

考虑一个场景:

您有一个名为 Release X 的分支,出于某种目的,您可以从中创建另一个分支 Release X.1

如果开发人员现在想要使用X.1 Branch,他有两个选择:

  1. 查看整个分支和完整的代码库(Time consumuing?)
  2. SVN启用发布X 工作副本以指向发布X.1 (考虑到没有大的变化) - 像魅力一样工作!
  3. 完成工作后,无缝切换回上一个分支......
  4. 这是一个场景......当您重新定位存储库时会发生什么?整个网址都会发生变化切换是智能而非结账。

    我相信我已经说明了一点:)

答案 1 :(得分:3)

  

是否必须使用svn切换到该分支?

不是“必须”,即使不是“有”的RFC。您可以切换WC,但“切换或不切换”是繁重的工作流程,并且依赖于样式和情境

一些干着名的理论

  • 每个WC都有一个(目前) Repository Root URL 属性
  • 我们无法使用 RepoRoot URL
  • 下的对象在WC(没有技巧)中操作
  • 虽然标签和分支在存储库中是便宜的副本,但它们在工作副本中并不便宜(通常情况下)并浪费与“原件”相同的空间
  • 您可以根据您的偏好选择存储库中的任何节点作为工作副本的根目录
  • 您可以对存储库的不同部分使用任意数量的工作副本(1+)

以上所有都导致:

  • 您可以一直使用一个WC (更少的空间,更多的流量和切换时的更新时间),根据某些节点深入到存储库树中并且按需
  • 将此WC切换到其他节点
  • 您可以使用每个不相关节点一个WC (更多空间,更少流量 - 无需切换,切换后无需同步WC)和更改WC
  • 您可以(在某些情况下)从根目录拥有整个存储库的WC(如果标签/分支机构方面频繁更改,WC中无用的未使用部分,则会占用最大空间和流量),并且导航单个WC树

正如您所看到的,只有在1/3的情况下才能切换

答案 2 :(得分:1)

假设你的回购看起来像这样:

.
├── branches/
│   ├── branch1/
│   │   └── src/
│   └── branch2/
│       └── src/
└── trunk/
    └── src/

如果你已经检查了整个仓库,那么分支将只显示为你说的另一个子目录。

然而,通常的工作方式是只检查主干,然后svn切换到分支并返回svn。这样你就不必查看这么多数据了,你的ide总是看同一个目录,你不会感到困惑,不小心编辑了错误的分支。

就我 使用分支而言我个人检查每个分区并在我的工作区目录中并排分开目录。但主要是我避免分支。