使用TortoiseSVN创建一个没有/ trunk结构的分支

时间:2011-12-17 16:24:04

标签: svn tortoisesvn branch branching-and-merging

背景:我们的源代码保存在我们自己的服务器的SVN存储库中。我们让A队正在研究网站的主要功能。我们希望与B团队合作设计方面,这些方面将位于不同的位置。

在设置SVN存储库的很长一段时间里,我创建了一个最终可以访问的结构:

svn://www.myserver.com/main/abc

源代码文件出现在'abc'级别和下面的文件夹中。

直到现在我需要创建一个分支时,这对我们来说一直很好。选择TortoiseSVN→Branch / Tag似乎可以让我选择在以下位置创建分支:

svn://www.myserver.com/main/def

然而,当我最后一次尝试时,它似乎创建了一个名为'def'的文件夹WITHIN'abc',这并不是我所期待的。我希望创建一个完全独立的存储库副本,B团队可以使用它,当合并两者时 - 可能会尽可能顺利地进行。

[我明白在'abc'中提交更改时,我们还必须提交'def']

2 个答案:

答案 0 :(得分:1)

svn中的分支只不过是一个副本。如果你正在使用一个名称为" trunk"和"分支"特殊意义(以及你描述它的方式,似乎TortoiseSVN这样做),尽量避免其分支功能并直接创建副本。如果您查看svn://www.myserver.com/main/,然后将abc复制到def,那么您将全部设置完毕。然后B队可以查看svn://www.myserver.com/main/def。

答案 1 :(得分:1)

Hvd答案的扩展版

存储库布局只不过是关于使用树的接受协议。您可以将主线和侧面工作存储在存储库树的任何位置,而它们不会相交。

在您对当前回购状态的描述中,您错过了一个重要的事物:存储库根目录在哪个级别? 两种情况“/ main /”和“abc /”都是可解决的,但步骤不同。

使用TSVN的Repository Browser,您甚至可以轻松检测root甚至是远程。你可以访问svn://www.myserver.com/main/ URL作为存储库,否则你会收到错误?

与repo-root相关的第二个问题是“Team TeamA现在使用哪个URL来访问repo?”是的,我阅读并理解

  

最终可以在svn://www.myserver.com/main/abc

访问的结构

但它为假设留下了一些空间:

  • 从svn://www.myserver.com/main/结帐TeamA并在工作副本中使用ABC目录
  • 从svn://www.myserver.com/main/abc进行TeamA结账,并立即在根目录中留出空间

(第一版和svn://www.myserver.com/main作为Q1的root用户需要以后重新签出存储库才能排除TeamB空间的公共根目录)

恢复

查找Repo-root,为我们写,我们将概述下一步的步骤