如何使用TFS SDK确定签出文件是否已更改

时间:2014-01-09 18:56:02

标签: c# tfs tfs-sdk

我有一个生成C#文件的工具。我已经能够以编程方式签出文件 使用这种方法:

private static void CheckoutFile(string fileName)
{
    var workspaceInfo = Workstation.Current.GetLocalWorkspaceInfo(fileName);
    var server = new TfsTeamProjectCollection(workspaceInfo.ServerUri);
    var workspace = workspaceInfo.GetWorkspace(server);

    workspace.PendEdit(fileName);
}

但是在生成文件后,我想确定文件是否有任何更改,如果没有,则撤消签出。我如何使用TFS SDK做到这一点?

1 个答案:

答案 0 :(得分:2)

从根本上说,TFS客户端(例如tfpt uu)通过比较本地文件的哈希值与您拥有的版本的服务器项目的哈希值来确定是否更改了签出文件在你的工作区。

要实现此行为:

  1. 计算本地文件的MD5哈希值
  2. 查询服务器上的项目:workspace.VersionControlServer.GetItems(fileName, new WorkspaceVersionSpec(workspace), RecursionType.None)
  3. ItemHashValue与步骤1中计算的值进行比较。