【问题标题】:SVN tags: How not to update/checkout them?SVN 标签:如何不更新/签出它们?
【发布时间】:2011-02-20 19:02:19
【问题描述】:

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

project/
    branches/
    tags/
    trunk/

如果我执行svn up project,那么branchestrunk 文件夹就可以了,但是tags 文件夹当然也会更新,并且(大部分)充满了很多标记版本对我的工作没有任何价值,只占用磁盘空间。

如何从svn update 中删除tags 文件夹?特别是,我怎样才能仅在本地执行此操作,也就是说,无需将其提交回存储库,就像使用 svn:ignore 关键字的解决方案一样?

【问题讨论】:

    标签: svn tags


    【解决方案1】:

    对于这种情况,Subversion 有一个名为 Sparse Checkout 的功能。

    svn up --set-depth empty project/tags
    

    这将删除所有签出的标签,只留下“标签”目录。

    另一种选择是:

    svn up --set-depth immediates project/tags
    

    这将检查标签目录本身,而不是它们的内容。
    通过这种方式,您可以轻松查看新标签并获取单个标签的内容:

    svn up --set-depth infinity project/tags/mytag
    

    编辑:

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

    【讨论】:

      【解决方案2】:

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

      svn update project/branches project/trunk
      

      【讨论】:

        【解决方案3】:

        首先您以非递归方式(-N 或 --non-recursive)检查项目的顶部

        svn co https://server/project -N my_project_checkout
        

        现在这个阶段你只能更新主干:

        svn up my_project_checkout/trunk
        

        【讨论】:

          【解决方案4】:

          您应该在主干或特定分支中检查和工作。听起来您已经检查了整个项目树。

          【讨论】:

          • 实际上,是的,我正在检查整个事情,因为它 a) 适合我针对特定项目的工作流程,并且 b) 可以使用单个 svn up 轻松更新(与 2 svn ups 用于拆分结帐)。我希望有一个能够保持完整回购的解决方案。
          • 好的,但在某些情况下,trunk 也可能超出您的需要。问题是真的可以说你只想要目录'a','b'和'd',而不是'c'吗?
          猜你喜欢
          • 1970-01-01
          • 2015-11-20
          • 1970-01-01
          • 1970-01-01
          • 2010-11-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多