TFS 2008的源码管理器-数据库相关

   这里来说下关于TFS 2008中源码管理器所对应的数据库表。在个别情况下,或许会对某个历史文件做修改(当然,除非非常情况,理论上是不允许这样做的,这里也是为了了解其结构来写的)。

    在TFS的源码管理中,每一个文件,无论是*.docx还是*.cs这类的文件,都以二进制形式被存放在TFS的数据库中,每一个 文件(这里的文件包括这个文件的历史记录)被称为一个"版本"。实际上在数据库中,每一个"版本"都会有一个ChangeSetID以其对应。记录他的迁 入时间、签入人、注释等信息。另外会有一个表,专门以二进制的方式将这个文件存入表中。这就是为什么TFS中的任何一个文件都能将其历史记录恢复,因为他 们并没有被覆盖或删除,而历史文件被作为另一个版本被存放在数据库中。

    下面介绍下关于源码管理表的

tbl_Annotation    注释

tbl_ChangeSet     修改记录表。这个表记录版本修改的记录。

    [ChangeSetId] 版本的 ID 。他在 [tbl_Version] 表中与 [tbl_Content] 表中的 ID 对应。

, [OwnerId] 版本操作人的 ID 。这里是历史记录里的操作人!关于操作人可以从 [tbl_Identity] 表中找到操作人的 ID 对应。

, [CreationDate] 修改建立时间,理论上应该与 [tbl_Content] 表中的 [CreationDate] 时间相同。

, [Comment] 签入注释

, [CheckInNoteId] 未知

, [CommitterId] 提交者 ID 。这里暂未知道在哪里显示,在对比后发现应该和 [OwnerId] 相同。

tbl_Conflict    冲突表

tbl_Content     数据内容表。这个表通过二进制,记录着每个版本的数据内容,其中

[CreationDate] 数据建立时间。

, [Content] 数据内容(这里为二进制),同过流方式以 image 的类型存入。

, [FileId] 此文件的 FileID ,他在 [tbl_Version] 表中与 [tbl_ChangeSet] 表中的 ID 对应。

, [OffsetFrom]

, [OffsetTo] 文件的起止大小,一般 From 0 To 为文件的大小。

tbl_Counter

tbl_Extension

 

tbl_Version     版本表,里面有ChangeSet和Content的ID对应

    [VersionFrom] 这个就是 [tbl_ChangeSet] 表中的 [ChangeSetId]

, [VersionTo] 这个是被修改的版本,被修改了的文件,他的 From To 是相同的,如果是最新文件,那么会是一个为" 2147483647 " 的值。

, [ItemId] 这个文件的 ID ,无论他被修改了多少次(多出了多少个版本),这个文件仍是一个文件,用此 ID 标识。

, [Command] 未知

, [ParentPath] 父路径

, [ChildItem] 子项目

, [Encoding] 编码

, [DeletionId] 未知

, [FileId] 这个就是 [tbl_ Content] 表中的 [FileId]

, [FullPath] 文件完全路径。

通过版本来列出这个文件的二进制表

select * from [TfsVersionControl]. [dbo]. [tbl_Content]

where [TfsVersionControl]. [dbo]. [tbl_Content]. [FileId]=

(select [TfsVersionControl]. [dbo]. [tbl_Version]. [FileID] from [TfsVersionControl]. [dbo]. [tbl_Version]

where [TfsVersionControl]. [dbo]. [tbl_Version]. [VersionFrom]=' 文件版本 ')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值