在没有重新下载的情况下更改现有SVN工作副本的深度

Bar*_*lom 32 svn svn-update sparse-checkout

我有一个完整的SVN存储库的工作副本,但由于磁盘空间问题,我想将其更改为稀疏的工作副本.

一种方法是:

svn up --set-depth immediates projects
svn up --set-depth infinity projects/project1
svn up --set-depth infinity projects/project2
Run Code Online (Sandbox Code Playgroud)

但是,这会先删除project1project2,然后重新下载它们.这真的很不方便,因为它们非常大,服务器的上传速度非常低.我试过这个(用另一个,更小的部分回购,作为实验):

svn up --set-depth infinity projects/project1
svn up --set-depth infinity projects/project2
svn up --set-depth immediates projects
Run Code Online (Sandbox Code Playgroud)

但是最后一个命令只撤消了前两个命令.

如何在不立即更新/更改工作副本的情况下设置工作副本的深度,这样我才有机会首先正确配置子目录?

或者是否有另一种方法来实现我想要的,例如通过复制project1并首先project2到达安全的位置?

Ann*_*ile 26

Woo hoo,我有这个问题,TortoiseSVN支持从稀疏结账添加和删除项目的解决方案. http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html

1.要添加:在Windows资源管理器中,右键单击签出文件夹,然后使用TortoiseSVN?Repo-Browser打开存储库浏览器.找到要添加到工作副本的子文件夹,然后使用上下文菜单?更新项目到修订....

2.删除; 从您的根目录右键单击/ Repo-Browser/Update项目到修订版; 然后选择"排除".

  • 您不必通过repo浏览器.TortoiseSVN的上下文菜单有"Update to revision ..."选项.只需右键单击排除的文件夹本身而不是工作目录根目录.当然,这假设您的路径中存在存根文件夹(空排除文件夹). (9认同)

Bar*_*lom 3

我最终破解了它:

  • 手动将 * 的深度设置编辑为“立即” projects
  • 硬删除(不是 SVN 删除)projects除了project1和之外的所有子项project2
  • svn up projects

[*] 为此,请projects/.svn/entries在文本编辑器中打开并更改

b125e325-6f7c-4931-9942-d1ea1ea1441a
X
Run Code Online (Sandbox Code Playgroud)

进入

b125e325-6f7c-4931-9942-d1ea1ea1441a







immediates
X
Run Code Online (Sandbox Code Playgroud)

注意:看起来 UUID 的行可能每个存储库都不同,X实际上是十六进制值0x0C,我无法在此处显示。