我试图了解 TFS 2008(和 2010,如果不同的话)如何存储和传达变更集中一组更改的详细信息。
现在,当我提交 Subversion 托管项目时,客户端会将差异发送到服务器。因此,如果我添加了一个文件并在另一个文件中更改了几行,它会发送类似 "Added file A.txt, put 2 lines "A" "B" into B.txt" 的内容。这意味着我可以取消修订,因为差异是可逆的——“删除文件 A.txt 并从 B.txt 中取出两行”。很确定它也与 git 相同。
我有一种感觉,TFS 不会以这种方式存储变更集(基于谣言和我不能轻易回滚修订等的事实)。
我相信会发生这种情况:如果我在变更集中更改了文件 A、B 和 C,那么实际存储在变更集中的是文件 A、B、C 的全新副本。不仅仅是差异。
我在这个假设中正确吗?作为商业软件,我很可能相信这些信息不可用,但我想我会问,因为谷歌搜索没有产生任何结果!
作为推论:TFS 变更集存储在哪里?我知道 SQL 服务器用于一些存储... changsets 吗?
我们目前正在使用 TFS 2008,但知道 2010 年的答案也很有用,因为我认为有升级计划。