Svn 存储库组织和选择性签出

Svn 存储库组织和选择性签出,svn,tortoisesvn,Svn,Tortoisesvn,我使用的是OrtoiseSVN,我有一个SVN存储库,其组织方式如下: folder1 folder2 trunk tag branches folder3 trunk tag branches folder4 folder5 trunk tag branches 我想知道是否有办法只签出主干目录,使整个树处于版本控制之下: folder1 folder2 trunk fol

我使用的是OrtoiseSVN,我有一个SVN存储库,其组织方式如下:

folder1
  folder2
    trunk
    tag
    branches
  folder3
    trunk
    tag
    branches
  folder4
    folder5
      trunk
      tag
      branches
我想知道是否有办法只签出主干目录,使整个树处于版本控制之下:

folder1
  folder2
    trunk
  folder3
    trunk
  folder4
    folder5
      trunk

通过这种方式,我可以在
folder1
上使用单个更新命令更新所有中继,而无需更新可能充满数据的标记和分支。

最接近、最简单的可能是。那会给你

folder1
  folder2
    trunk
      A
      B
      C
      ...
    tag
    branch
  folder3
    trunk
      A
      B
      C
      ...
    tag
    branch
  folder4
    folder5
      trunk
      A
      B
      C
      ...
      tag
      branch
以及一次更新所有内容的能力


或者你可以用这个。在您的存储库中创建一个新文件夹,它只引用其他中继

最接近和最容易的可能是。那会给你

folder1
  folder2
    trunk
      A
      B
      C
      ...
    tag
    branch
  folder3
    trunk
      A
      B
      C
      ...
    tag
    branch
  folder4
    folder5
      trunk
      A
      B
      C
      ...
      tag
      branch
以及一次更新所有内容的能力


或者你可以用这个。在您的存储库中创建一个新文件夹,它只引用其他中继

有两种方法可以做到这一点

  • 将不需要的目录切换为空目录。为此,您必须在存储库中的某个位置有一个空目录。然后你首先检查整棵树,然后
  • 等等

  • 从1.5开始,您可以使用

  • 有两种方法可以做到这一点

  • 将不需要的目录切换为空目录。为此,您必须在存储库中的某个位置有一个空目录。然后你首先检查整棵树,然后
  • 等等

  • 从1.5开始,您可以使用

  • 请注意,稀疏签出通常是一种方法,但是Subversion不允许您与合并--重新整合选项

    这听起来可能是个小问题(例如,如果您是单用户),但您确实应该考虑一下,并使用适当的存储库结构


    您提到的存储库结构也不允许同时标记或分支所有项目

    请注意,稀疏签出通常是一种方法,但是Subversion不允许您与--重新整合选项合并

    这听起来可能是个小问题(例如,如果您是单用户),但您确实应该考虑一下,并使用适当的存储库结构


    您提到的存储库结构也不允许同时标记或分支所有项目

    这个问题一直困扰着我,我破解了它:)

    随后在父目录中调用
    svn update
    不会更新这些目录,也不会调用
    svn commit

    如果要重新查看此内容,您可以:

    svn co --depth empty <folder1 svn url>
    cd folder1
    svn up --depth empty folder2
    cd folder2
    svn up trunk
    
    svn co——深度为空
    cd文件夹1
    svn up—深度空文件夹2
    cd文件夹2
    上主干
    

    然后对每个
    folder3
    folder4
    重复这个问题,我解决了:)

    随后在父目录中调用
    svn update
    不会更新这些目录,也不会调用
    svn commit

    如果要重新查看此内容,您可以:

    svn co --depth empty <folder1 svn url>
    cd folder1
    svn up --depth empty folder2
    cd folder2
    svn up trunk
    
    svn co——深度为空
    cd文件夹1
    svn up—深度空文件夹2
    cd文件夹2
    上主干
    
    然后为未来的读者重复每个
    folder3
    folder4

    :上面的--depth和--set depth标志是“稀疏目录”标志,在其他答案中注明(如前所述,仅在Subversion 1.5+中可用)。对于未来的读者:上面的--depth和--set depth标志是“稀疏目录”标志,在其他答案中注明(如前所述,仅在Subversion 1.5+中提供)。