为什么要使用svn开关?
我有带分支、标签和主干的svn回购 现在,当我创建新分支时, 必须使用svn开关切换到该分支吗? 我不应该直接在那个分支目录上工作吗为什么要使用svn开关?,svn,Svn,我有带分支、标签和主干的svn回购 现在,当我创建新分支时, 必须使用svn开关切换到该分支吗? 我不应该直接在那个分支目录上工作吗 抱歉,这听起来很愚蠢。嗯,SVN开关功能并没有那么无用 有时,您可能会在一个版本的多个分支中拥有庞大的代码库 考虑一个场景: 您有一个名为Release X的分支,出于某种目的,您可以从中创建另一个分支Release X.1 如果开发人员现在想使用X.1 Branch,他有两个选择: 检查整个分支和完整的代码库(耗时?) SVN打开版本X工作副本,指向版本X.1(
抱歉,这听起来很愚蠢。嗯,SVN开关功能并没有那么无用 有时,您可能会在一个版本的多个分支中拥有庞大的代码库 考虑一个场景: 您有一个名为Release X的分支,出于某种目的,您可以从中创建另一个分支Release X.1 如果开发人员现在想使用X.1 Branch,他有两个选择:
- 每个WC都有一个(目前)存储库根URL属性
- 我们不能在WC(没有技巧)中操作repootURL下面的对象
- 虽然标记和分支在存储库中是廉价的副本,但它们在工作副本中并不便宜(通常情况下),并且浪费了与“原件”相同的空间
- 您可以选择存储库中的任何节点作为工作副本的根节点,具体取决于您的首选项
- 您可以为存储库的不同部分使用任意数量的工作副本(1+)
- 您可以始终使用一个WC(更少的空间、更多的流量和切换时的更新时间),根到存储库树深处的某个节点,并根据需要将此WC切换到其他节点
- 您可以为每个不相关的节点使用一个WC(更多空间,更少流量-无需切换,切换后无需同步WC)和更改WC
- 您可以(在某些情况下)从根目录获得整个存储库的WC(标签/分支侧频繁更改时的最大空间和流量使用,WC中repo的无用未使用部分),并在单个WC树上导航
正如您所看到的,只有在1/3的情况下,转换才是必须的假设您的回购看起来有点像这样:
.
├── branches/
│ ├── branch1/
│ │ └── src/
│ └── branch2/
│ └── src/
└── trunk/
└── src/
如果你已经签出了整个回购协议,那么分支会像你说的那样显示为另一个子目录
然而,通常的工作方式是只签出主干,然后svn切换到分支,svn切换回来。这样,您就不必签出这么多数据,您的ide总是查看同一个目录,您也不会感到困惑并意外地编辑了错误的分支
就我个人而言,在我必须使用分支的地方,我会在我的工作区目录中将每个分支并排签出到单独的目录中。但我大多避免分支。嗯,我想我现在明白了。但是像我这样的小案子。我可以直接在分支上工作,对吗?但是如果
trunk
切换到分支,在记得切换回trunk
之前,对trunk
的访问不是会丢失吗?听起来有点“黑客”喜欢在保留trunk
目录名的同时更改后台内容。是的,的确如此。因此,最好使用SVN info
命令检查当前的SVN分支。