TFS 2008/TFS 2010如何以及在何处存储变更集?

Jen*_*fer 6 tfs tfs2008 changeset tfs2010

我试图了解TFS 2008(以及2010年是否不同)如何存储和传达变更集中一组更改的详细信息.

现在,当我提交Subversion托管项目时,客户端将差异发送到服务器.因此,如果我添加了一个文件并在另一个文件中更改了几行,则会发送类似"添加文件A.txt,将2行"A""B"写入B.txt"的内容.这意味着我可以退出修订,因为差异很可逆 - "删除文件A.txt并从B.txt取出两行".很确定它与git也一样.

我有一种感觉,TFS不会以这种方式存储变更集(基于谣言和我不能轻易回滚修订等的事实).

我认为发生的是:如果我在变更集中更改了文件A,B和C,变更集中实际存储的是文件A,B,C的全新副本.不仅仅是差异.

我在这个假设中是否正确?作为商业软件,我完全相信这些信息不可用,但我想我会问谷歌搜索没有产生任何东西!

作为推论:TFS变更集存储在哪里?我知道SQL服务器用于某些存储...也是changsets?

我们目前正在使用TFS 2008,但了解2010年的答案也很有用,因为我认为有升级计划.

Dou*_*son 11

TFS将所有变更集数据存储在SQL Server数据库中.它完整​​地存储来自最新变更集的代码.然后它将diff存储到以前的版本.将它存储在SQL Server中的一个好处是它获得了由事务提供的"全部或全部"保存功能.

至于它存储的位置,您可以查看此博客条目http://blogs.msdn.com/b/bharry/archive/2009/04/19/team-foundation-server-2010-key-concepts.aspx