SVN标签:如何不更新/签出它们?

SVN标签:如何不更新/签出它们?,svn,tags,Svn,Tags,在许多项目中,我查看了完整的存储库,然后获得了标准目录结构: project/ branches/ tags/ trunk/ 如果我做了一个svn-up项目,那么分支和主干文件夹都没问题,但是,当然,标签文件夹也会被更新,并且(大部分)充满了很多标签版本,这些版本对我的工作没有价值,只会占用磁盘空间 如何从svn更新中删除标签文件夹?特别是,我如何仅在本地执行此操作,即不将其提交回存储库,使用svn:ignore关键字的解决方案就可以了?您应该在主干或特定分支上签出并工

在许多项目中,我查看了完整的存储库,然后获得了标准目录结构:

project/
    branches/
    tags/
    trunk/
如果我做了一个
svn-up项目
,那么
分支
主干
文件夹都没问题,但是,当然,
标签
文件夹也会被更新,并且(大部分)充满了很多标签版本,这些版本对我的工作没有价值,只会占用磁盘空间


如何从
svn更新中删除
标签
文件夹?特别是,我如何仅在本地执行此操作,即不将其提交回存储库,使用
svn:ignore
关键字的解决方案就可以了?

您应该在主干或特定分支上签出并工作。听起来您已经签出了整个项目树。

首先,您要以非递归方式(-N或--non-recursive)签出项目的顶部

现在,在此阶段,您只能更新主干:

svn up my_project_checkout/trunk

要仅更新特定文件夹,请将其传递给svn update命令

svn update project/branches project/trunk

对于这种情况,Subversion有一个称为稀疏签出的功能

svn up --set-depth empty project/tags
这将删除所有签出的标记,只留下“标记”目录

另一个选择是:

svn up --set-depth immediates project/tags
它将检出标记目录本身,但不会检出其内容。
通过这种方式,您可以轻松查看新标签,并通过以下方式获取单个标签的内容:

svn up --set-depth infinity project/tags/mytag
编辑:


这也适用于elcucos解决方案,您甚至可以将其用于您的分支目录。

事实上,是的,我正在检查整个内容,因为它a)适合特定项目的工作流程,b)可以通过单个
svn up
轻松更新(与2
svn up
用于拆分签出相比)。我希望有一个解决方案能够保持完整回购协议的签出。好的,但在某些情况下,它可能比您在
trunk
下需要的还要多。问题是,是否可以说您只需要目录“a”、“b”和“d”,而不需要目录“c”?
svn up --set-depth infinity project/tags/mytag