代码之家  ›  专栏  ›  技术社区  ›  Bart van Heukelom

忽略SVN工作副本中的分支

  •  4
  • Bart van Heukelom  · 技术社区  · 15 年前

    最近我们做了项目主干的第一个分支。主干相当大(几个GB),这对服务器来说并不重要,因为分支是通过在那里进行有效链接而建立的。然而,在客户机工作副本中,项目现在确实占用了两倍的空间(我们所有的wc都来自库根目录)。

    因为只有少数人真正需要这个分支,其他人怎么能忽略(即不下载)所有使用Tortoissesvn的分支呢?

    这里的解决方案不是用户只检查主干,如下所示。我们的结构如下:

    /
     projects
      project-x
       assets
        blabla.psd
       code
        trunk
        branches
         branch1
         branch2
      project-y
       ...
    
    5 回复  |  直到 15 年前
        1
  •  6
  •   Dialecticus    14 年前

    短解决方案-切换到/行李箱。除了主干之外,所有不需要其他任何东西的人都可以从/root/trunk签出,而不是从/root签出。任何想要分支的人都应该在另一个目录中签出分支。

    更复杂的解决方案-只检查您需要的,但维护树结构。如果你想要两个自由都拥有,并且只使用你想要的,那么遵循以下步骤:

    1. 使用选项“仅直接子项”从根目录签出
    2. 使用选项“完全递归”从根/主干签出

    如果有人想要签出某个特殊分支,那么在前两个步骤之后:

    • 使用选项“仅限直接子级”从根/分支签出
    • 使用选项“完全递归”从该特殊分支签出

    你可以在SVN好书的第章中找到更多关于这个主题的内容。” Sparse Directories “。

    此过程没有快捷方式可用于Cherry-Pick分支。除了批处理文件和 TortoiseProc .

    编辑:如果您已经签出了整个存储库,并且现在要排除某些内容以节省空间,请在要用签出部门“排除”排除的文件夹上使用命令“更新要修订的项目”。根据 the manual 此选项仅在“更新到修订”对话框中可用。我想是为了这个目的。

    请先在临时工作副本上尝试此操作。我从来没有亲自做过这件事。

    更新:从Tortoissesvn1.7签出对话框中有一个按钮“选择项目”,允许您只选择想要的文件夹并在一个步骤中获取它们。同样的按钮也可以在“更新项目到修订”对话框中使用。

        2
  •  6
  •   Brett McBride    12 年前

    (从工作副本的根目录)

    find . -name branches -exec svn update --set-depth empty {} \;
    

    这将从工作副本中删除所有分支,以后的更新将不会下载这些分支。 希望看到分支的开发人员随后可以:

    svn update --set-depth infinity branches\my-feature-branch
    
        3
  •  1
  •   tdammers    15 年前

    我希望你有这样的结构:

    repo root
      |
      +-- trunk
      |
      +-- branches
             |
             +-- branch1
             +-- branch2
             +-- ...
    

    如果是这样,那么用户可以简单地签出 http://server/repo/trunk 而不是 http://server/repo 当他们想在分支机构工作时,他们可以将工作副本切换到 http://server/repo/branches/branch1 .

        4
  •  1
  •   Community Mohan Dere    9 年前

    右键单击不想使用的文件夹,然后转到“更新到修订版…”。在弹出的对话框中,将更新深度设置为“排除”。(注意,这只适用于文件夹。)这将从工作副本中删除它,但不会影响存储库。乌龟只知道在更新过程中不要尝试更新。

    要撤消它,您可以右键单击父文件夹(或其父文件夹等),然后选择“repo browser”。找到排除的文件夹,右键单击并选择“更新项目到修订”。你会得到同样的对话框;这次,只要确保它写着“工作副本”。

    Undo check out of subfolder in TortoiseSVN

        5
  •  0
  •   maxim1000    14 年前

    如果人们必须将资产与代码一起下载,那么在Project-X级别进行分支就更自然了。在这种情况下,您将不会遇到您描述的问题。你有什么理由只分出你的一部分吗?