我正在使用Tortoise SVN。
我的办公机构中有一个非常大型存储库,其中包含非常大的文件夹树。我的电脑只有大约64GB的可用空间(SSD),而回购大约是100GB。问题是,该存储库有许多文件夹(称为概念),其中包含许多非常大的tif文件(保存用于保管 - 程序员只使用这些图片的压缩版本)。 / p>
使用更新到修订版上下文命令更新我的工作副本是不合逻辑的,并且每次我需要时取消选择源树中的所有“Concepts”文件夹更新我的工作副本。
示例文件夹结构:
\folder
\child
\Concepts
\child1
\Concepts
\child2
\Concepts
\child3
\Concepts
\folder1
\childOther
\grandchild
\Concepts
\grandchild1
\Concepts
\grandchild2
\Concepts
我无法只排除所有tif文件,因为它们正在其他文件夹中使用。
所以我的最后一个问题是: 如何从树中排除具有特定名称的所有文件夹,从Tortoise SVN存储库中更新我的工作副本时 ?
答案 0 :(得分:4)
此功能不存在。 svn checkout
和svn update
的命令行版本没有"过滤器"因此,TortoiseSVN也不会为你提供这种能力。
您真正要求的是sparse checkout,其中您没有"概念"工作副本中的文件夹和SVN知道永远不会从存储库中删除它们。要创建一个,您有两个选择:
如果您还没有检查过您的工作副本,那么您可以在TortoiseSVN" Checkout"中使用内置的支持。对话框(来自上面的链接):
要轻松选择所需的结帐项目并强制生成的工作副本仅保留这些项目,请单击选择项目... 按钮。这将打开一个新对话框,您可以在其中检查工作副本中所需的所有项目,并取消选中您不想要的所有项目。然后,生成的工作副本称为稀疏结账。 此类工作副本的更新不会获取丢失的文件和文件夹,只会更新您工作副本中已有的内容。
换句话说,选择除" Concepts"之外的所有目录。目录并执行结帐。然后,当您稍后需要更新时,这些目录将不会被删除。
如果您已经检查过代码,可以使用TortoiseSVN"更新到修订版"将您的工作副本变成稀疏结帐。对话。右键单击" Concepts"您不希望在工作副本中使用的文件夹,选择更新到修订版,然后选择"排除的更新深度。"这将从您的工作副本中删除它,进一步的更新不会再次将其删除。
如果在某个时候之后,你曾经做想要其中一个" Concepts"文件夹,您可以将其作为工作副本的一部分。最简单的方法是右键单击要下拉的文件夹的父目录,单击 Repo-browswer ,然后右键单击" Concepts"文件夹并选择更新项目到修订。在该对话框中,选择"工作副本"的更新深度。然后单击"确定"。