【问题标题】:Is there a limit on the number of files in a changeset in TFS?TFS 变更集中的文件数量是否有限制?
【发布时间】:2011-11-09 01:45:36
【问题描述】:

我已经进行了一些搜索,但无法确定 TFS 是否对单个变更集中的文件数量有任何限制。

这提出了 IntelliJ IDEA,我们发现它正在拆分包含超过 200 个文件的变更集。我想争辩说根本不应该有任何限制,或者至少该限制应该与 TFS 自己的限制相同,如果有的话。请参阅我在 http://youtrack.jetbrains.net/issue/IDEA-54846 上报告的关于此问题的缺陷。

【问题讨论】:

    标签: tfs intellij-idea


    【解决方案1】:

    变更集中的变更数量存储为 CLR 的 int 类型。所以肯定有int.MaxValue2,147,483,647 的上限。我认为没有任何检查可以以任何其他方式限制更改的数量(尽管我可能弄错了。)实际上,您可能在达到该值之前很久就在服务器上处理磁盘空间争用。

    Team Foundation Server 的一个具体设计目标是处理大型变更集 - 特别是合并具有大量流失的大型功能分支 - 这可能会生成包含大量合并或合并/编辑更改的变更集。

    简而言之,没有。即使有,数百也有几个数量级的差距。没有理由将它们拆分为多个变更集——这样做只会对自己造成伤害。这样做会损害可追溯性,并且基本上会演变为非原子系统(耶,CVS!),并使存储库的状态不可靠。它对持续集成、链接到工作项和构建以及整体可追溯性产生负面影响。想象一下将一半的合并检查到一个分支......然后是另一半。这听起来像是一场噩梦。

    【讨论】:

    • 感谢您的详细回复。我完全同意这一点的非原子性方面,这就是我首先向 JetBrains 报告该缺陷的原因。
    【解决方案2】:

    根据我对 TFS 站点的观察,TFS 变更集中的文件数至少为 11670。

    USE Tfs_Warehouse;
    GO
    
    SELECT
        FCC.ChangesetSK
    ,   COUNT(1) AS row_count
    FROM
        dbo.FactCodeChurn FCC
        INNER JOIN
            dbo.DimChangeset DCS
            ON DCS.ChangesetSK = FCC.ChangesetSK
        INNER JOIN
            dbo.DimFile DF
            ON DF.FileSK = FCC.FilenameSK
    GROUP BY
        FCC.ChangesetSK
    HAVING
        COUNT(1) > 200
    ORDER BY
        2 DESC;
    

    部分结果

    ChangesetSK row_count
    53172   11670
    4436    7940
    4442    7808
    43808   6262
    21016   6047
    53173   5835
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 2010-10-26
      • 2017-11-06
      • 2015-04-16
      • 2015-04-04
      • 2011-02-08
      相关资源
      最近更新 更多