2012-08-02 103 views
1

我想介绍使用我们现有(和独家)树干分支/合并(这是巨大的)。这里有一个例子:从SVN树干的部分树创建分支

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复制主干分支/ mynewbranch
  4. 我承诺我的变化

然而,当我浏览版本库中,mynewbranch包含树干结构的镜像副本,而不仅仅是我更新的几棵树。是否有可能从树干的部分树创建分支?

编辑#1

我走进主干文件夹,然后运行以下命令:

svn copy . <path_of_branch> 

如果我看我的工作拷贝,分支仅包含我需要什么。这很好。

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

回答

0

试试这个步骤3 ...

svn copy . <path_of_branch> 

这里.意味着你working copy将创建为branch这是我相信你正在尝试做的。

+0

感谢你的帮助。你的建议部分奏效。请参阅编辑#1。谢谢! – TekiusFanatikus 2012-08-02 17:02:51

0

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

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

可能值得注意的是branch trunk被认为是最佳实践,而不是trunk的子文件夹。 This question有更多的细节。请注意,在存储库中,由于颠覆调用cheap copying的内容,分支整个中继时没有显着的磁盘使用惩罚。此外,如果本地磁盘存储或网络带宽有问题,您当然也可以检出分支机构所需的子文件夹。

0

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

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

或网址到地址

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

....