【问题标题】:SVN Tag/Branch UpdatesSVN 标签/分支更新
【发布时间】:2010-08-03 21:16:33
【问题描述】:

我在家里设置了一个 SVN 服务器,目前包括我在内的 3 个人正在使用它。我有一些来自/来自树干的分支和标签。所有用户都签出了完整的存储库,包括主干、分支、标签。现在,当新标签由稳定版本组成时,所有用户都会更新他们的标签。这就是我的问题开始的地方。很多时候,许多文件在主干中保持不变,然后在修复该版本的错误列表时将其标记为稳定版本。当更新开始时,SVN 会从服务器抓取所有文件,包括未更改的文件。更新标签也需要很长时间。

想问有没有办法让subversion从本地trunk中获取所有文件,放到新标签中,然后更新标签,只替换已经改变的文件。所以如果主干目录是:

后备箱
- 艺术
- 引擎
--- 图形
--- 物理学 //修改
- 音效
--- 对话

我标记它,svn 可以将所有文件从trunk 复制到新标记中,然后相应地更新标记吗?

我知道的一个解决方案是导出主干,然后更新标签。有没有更好的方法?

【问题讨论】:

    标签: svn


    【解决方案1】:

    为什么用户需要查看完整的存储库?正常的做法是检查 yourrepo/trunk 或 /yourrepo/branches/yourbranch。

    如果您仍然出于某种原因想要签出根目录,我想您可以通过将主干复制到标签/yournewtag 来完成您的要求,然后在该标签上使用'svn switch'。

    【讨论】:

    • 我支持@rlovtang 的回答。如果您需要检查主干旁边的特定分支或标签,请按需进行,因此请单独检查。
    • 我同意,但这不是我面临的问题。当有人签出一个标记为 Release1.0 的标签,然后过了一会儿 Release1.1 出现了,其中有许多与 Release1.0 相同的未触及文件,为什么要浪费带宽和时间来复制与之前版本没有区别的文件?已经有那些文件了?如果 SVN 先将本地文件复制到新标签(如果有的话),然后将它们更新到新版本,这将是一个很好的功能。我想我应该重新考虑我的行李箱的布局方式。
    • 太棒了,正是我想要的。你能用同样的句子(或者可能有点复杂的形式)回答这个问题,以便我可以检查它作为答案吗?
    【解决方案2】:

    除非您需要在标签中工作(您可能不应该这样做),否则您甚至不需要本地副本。只需对 URL svn copy 做一个 URL,例如“svn copy http://svn/repo/trunkhttp://svn/repo/tags/mytag”。更快。

    如果你在谈论一个分支,我也会这样做,但然后签出分支来处理它。

    【讨论】:

      【解决方案3】:

      我一直在寻找的答案是使用 SVN 开关——这是我不知道的 SVN 的一个基本功能。

      rlovtang 已经回答了这个问题,但在评论中。一旦他正式回答问题,我会将复选标记切换为他的答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-03
        • 2012-09-14
        相关资源
        最近更新 更多