SVN标签:如何更新/结账?

Bol*_*wyn 8 svn tags

在许多项目中,我检查完整的存储库,然后是标准目录结构:

project/
    branches/
    tags/
    trunk/
Run Code Online (Sandbox Code Playgroud)

如果我这样做了svn up project,这一切都细跟branchestrunk文件夹,但是,当然,该tags文件夹被更新,也和充满了(大部分)很多标记的版本,这是我的工作没有价值的,只占用磁盘空间.

我怎么能从tags文件夹中除外svn update?特别是,我如何才能在本地执行此操作,即不将其提交回存储库,因为具有svn:ignore关键字的解决方案可以做到?

Har*_*ded 16

Subversion在这种情况下有一个名为Sparse Checkout的功能.

svn up --set-depth empty project/tags
Run Code Online (Sandbox Code Playgroud)

这将删除所有签出的标签,只留下"标签"目录.

另一种选择是:

svn up --set-depth immediates project/tags
Run Code Online (Sandbox Code Playgroud)

这将检查标签目录本身,但不检查其内容.
通过这种方式,您可以轻松查看新标记并获取单个标记的内容:

svn up --set-depth infinity project/tags/mytag
Run Code Online (Sandbox Code Playgroud)

编辑:

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


elc*_*uco 15

首先,以非递归方式检查项目顶部(-N或 - 非递归)

svn co https://server/project -N my_project_checkout
Run Code Online (Sandbox Code Playgroud)

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

svn up my_project_checkout/trunk
Run Code Online (Sandbox Code Playgroud)