php - 在TFS中 checkin 时检索文件的MD5

标签 php visual-studio-2012 tfs md5

我正在使用带有 TFS 的 Visual Studio 2012。我正在编写一个工具,使用从 TFS 检索的 tf 历史记录检查单独的数据库。但是,我只能从本地存储的当前文件中获取 MD5,如果我在数据库中搜索该文件但与早期变更集相关,这会给出不准确的结果。有没有办法在 checkin 时检索文件的 MD5?

我正在用 PHP (5.3) 编写一个脚本来完成这一切,我知道有 md5_file(filename) 或者你可以做 md5(file_get_contents(filename)) 但这仅适用于本地保存的文件。

***编辑:我找到了一个解决方法,当我使用 tf History 并获取文件的所有变更集时,我还使用 tf get filename.txt;changeset# ,然后获取 md5。我不确定是否有更有效的方法,但这目前有效。

最佳答案

我知道如何通过 TFS API 实现这一点。如果您使用 GetPendingChanges()(如果您不需要工作区的所有待处理更改,则使用 QueryPendingSets())查询工作区中的待处理更改,您将获得一个 PendingChange 对象数组。 PendingChange 对象有很多属性。其中两个属性是 HashValue UploadHashValue PendingChange.HashValue 属性,用于获取挂起更改内容的 MD5 HashValue

HashValue 属性是待更改的版本内容的 MD5 哈希。该值与磁盘上文件的 MD5 哈希值不同,您需要使用 MD5CryptoServiceProvider 自行计算该值。

更多详情请引用此博客:TFS API: Determining if an edited file has changed

关于php - 在TFS中 checkin 时检索文件的MD5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40600056/

相关文章:

javascript - jQuery 下一个-上一个图库按钮在结束时不停止

一行中的 PHP 回显表图像?

visual-studio - 如何在一个 Visual Studio IDE 中打开两个解决方案?

TFS 2012 - 计划备份失败

c++ - 是否可以使用 C++( native )访问 TFS API

php - Codeigniter:将命名空间添加到 Controller 类时出现服务器错误

PHP - 为什么读取这个 csv 文件使用这么多内存,我该如何改进我的代码?

.net - 在分析(采样)应用程序时忽略 GC

由于 SSL,WCF 服务无法在 Visual Studio 中运行

c# - 如何获取鼠标右键事件?将 EventArgs 更改为 MouseEventArgs 会导致 Form1Designer 出错?