更新SVN工作副本时如何排除所有具有特定名称的文件夹?
How to exclude all folders with specific name when updating SVN working copy?
我正在使用 Tortoise SVN。
在我的办公室机构中有一个非常 的大型存储库和非常大的文件夹树。我的电脑只有大约 64GB 可用空间 space (SSD),而存储库大约有 100GB。问题是,该存储库有 许多 文件夹(称为 Concepts),其中包含许多非常大的 tif 文件(为妥善保管 - 程序员仅使用压缩版本这些照片)。
使用更新到修订版上下文命令更新我的工作副本是不合逻辑的,并且取消选择所有"Concepts"每次我需要更新我的工作副本时源代码树中的文件夹。
示例文件夹结构:
\folder
\child
\Concepts
\child1
\Concepts
\child2
\Concepts
\child3
\Concepts
\folder1
\childOther
\grandchild
\Concepts
\grandchild1
\Concepts
\grandchild2
\Concepts
我不能只排除所有的tif文件,因为它们正在其他文件夹中使用。
所以我的最后一个问题是:
如何从树中排除具有特定名称的所有文件夹,从 Tortoise SVN 存储库更新我的工作副本时?
此功能不存在。 svn checkout
and svn update
的命令行版本没有 "filter" 选项,因此按理说 TortoiseSVN 也不会为您提供此功能。
您真正想要的是 sparse checkout,您的工作副本中有 none 个 "Concepts" 文件夹,并且 SVN 知道永远不要将它们从存储库。要创建一个,您有两个选择:
如果您还没有检查您的工作副本,那么您可以在 TortoiseSVN 的 "Checkout" 对话框中使用对此的内置支持(来自上面的 link ):
To easily select only the items you want for the checkout and force the resulting working copy to keep only those items, click the Choose items... button. This opens a new dialog where you can check all items you want in your working copy and uncheck all the items you don't want. The resulting working copy is then known as a sparse checkout. An update of such a working copy will not fetch the missing files and folders but only update what you already have in your working copy.
换句话说,select 除您的 "Concepts" 目录外的所有目录并执行检出。然后以后需要更新的时候,那些目录就不会拉下来了。
如果您已经签出代码,您可以使用 TortoiseSVN 的 "Update to Revision" 对话框将您的工作副本变成稀疏签出。右键单击您不希望出现在工作副本中的 "Concepts" 文件夹,select 更新到修订版 ,然后 select 一个 "Exclude." 的更新深度 这将从您的工作副本中删除它,并且进一步的更新不会再次将其拉下。
如果稍后您 想要 "Concepts" 文件夹之一,您可以将其作为工作副本的一部分。最简单的方法是右击你要下拉的文件夹的父目录,点击Repo-browswer,然后右击"Concepts"文件夹和 select 将项目更新为修订版 。在该对话框中,select 更新深度 of "Working copy" 然后点击 "OK"。
我正在使用 Tortoise SVN。
在我的办公室机构中有一个非常 的大型存储库和非常大的文件夹树。我的电脑只有大约 64GB 可用空间 space (SSD),而存储库大约有 100GB。问题是,该存储库有 许多 文件夹(称为 Concepts),其中包含许多非常大的 tif 文件(为妥善保管 - 程序员仅使用压缩版本这些照片)。
使用更新到修订版上下文命令更新我的工作副本是不合逻辑的,并且取消选择所有"Concepts"每次我需要更新我的工作副本时源代码树中的文件夹。
示例文件夹结构:
\folder
\child
\Concepts
\child1
\Concepts
\child2
\Concepts
\child3
\Concepts
\folder1
\childOther
\grandchild
\Concepts
\grandchild1
\Concepts
\grandchild2
\Concepts
我不能只排除所有的tif文件,因为它们正在其他文件夹中使用。
所以我的最后一个问题是: 如何从树中排除具有特定名称的所有文件夹,从 Tortoise SVN 存储库更新我的工作副本时?
此功能不存在。 svn checkout
and svn update
的命令行版本没有 "filter" 选项,因此按理说 TortoiseSVN 也不会为您提供此功能。
您真正想要的是 sparse checkout,您的工作副本中有 none 个 "Concepts" 文件夹,并且 SVN 知道永远不要将它们从存储库。要创建一个,您有两个选择:
如果您还没有检查您的工作副本,那么您可以在 TortoiseSVN 的 "Checkout" 对话框中使用对此的内置支持(来自上面的 link ):
To easily select only the items you want for the checkout and force the resulting working copy to keep only those items, click the Choose items... button. This opens a new dialog where you can check all items you want in your working copy and uncheck all the items you don't want. The resulting working copy is then known as a sparse checkout. An update of such a working copy will not fetch the missing files and folders but only update what you already have in your working copy.
换句话说,select 除您的 "Concepts" 目录外的所有目录并执行检出。然后以后需要更新的时候,那些目录就不会拉下来了。
如果您已经签出代码,您可以使用 TortoiseSVN 的 "Update to Revision" 对话框将您的工作副本变成稀疏签出。右键单击您不希望出现在工作副本中的 "Concepts" 文件夹,select 更新到修订版 ,然后 select 一个 "Exclude." 的更新深度 这将从您的工作副本中删除它,并且进一步的更新不会再次将其拉下。
如果稍后您 想要 "Concepts" 文件夹之一,您可以将其作为工作副本的一部分。最简单的方法是右击你要下拉的文件夹的父目录,点击Repo-browswer,然后右击"Concepts"文件夹和 select 将项目更新为修订版 。在该对话框中,select 更新深度 of "Working copy" 然后点击 "OK"。