在SVN中从中继的部分树创建分支

时间:2012-08-02 14:50:17

标签: svn tortoisesvn

我想使用我们现有的(和独有的)主干(这是巨大的)引入分支/合并。这是一个例子:

trunk
    folderA
        folderA1
            folderA1a
        folderA2
    folderB
    folderC
    ...
    folderZ
        folderZ1
            folderZ1a
    libraries

branches

目标是将这些路径作为分支:

  • 躯干/ folderA / folderA1 / folderA1a
  • 躯干/ folderZ / folderZ1 / folderZ1a
  • 躯干/库

到目前为止,我已经完成了以下工作:

  1. 我使用部门“立即儿童,包括文件夹”对行李箱进行了结帐。这只显示我的分支,标签和主干
  2. 我更新了folderA1a,folderZ1a和库树从trunk到我的工作副本。现在我的工作副本中有这3棵完整的树
  3. 从我的工作副本中,我运行了以下命令:svn copy trunk branches / mynewbranch
  4. 我提交了我的更改
  5. 但是,当我浏览存储库时,mynewbranch包含trunk的结构的镜像副本,而不仅仅是我更新的几棵树。甚至可以从树干的部分树创建分支吗?

    编辑#1

    我进入了trunk文件夹并运行了以下命令:

    svn copy . <path_of_branch>
    

    如果我查看我的工作副本,分支只包含我需要的内容。这很好。

    但是,当我提交这些更改时,浏览存储库时,我最初排除的所有文件夹都存在。当我签出有问题的分支时,也会出现不需要的文件夹。

3 个答案:

答案 0 :(得分:0)

在第3步尝试此操作...

svn copy . <path_of_branch>

此处.表示您的working copy将被创建为branch,我相信您的目标。

答案 1 :(得分:0)

由于问题被标记为tortoisesvn我假设TortoiseSvn可用。

您可能会发现使用Repository Browser更容易执行此类操作。

值得注意的是,branch trunk而不是行李箱的子文件夹被认为是最佳做法。 This question有更多详情。请注意,在存储库中,由于subversion调用cheap copying,因此分支整个主干没有显着的磁盘使用损失。此外,如果本地磁盘存储或网络带宽出现问题,您当然可以只检查分支机构所需的子文件夹。

答案 2 :(得分:0)

您必须复制trunk中要包含的branch的每个元素。

svn copy directori/file1 url:/svn/directori/file1
svn copy ......

或从url到url

svn copy url:/svn/test/trunk/file1 url:/svn/test/branches/branch01/file1

...