检查文件是否已在源代码管理中

时间:2012-08-23 10:57:40

标签: c# .net tfs tfs-sdk

我正在使用来自Microsoft.TeamFoundation.VersionControl.Client namespace的类以编程方式使用TFS。我的目标是将本地文件夹中的文件签入到源代码管理中。某些文件可能已经存在于SC中,应该是编辑的,有些是新的,应该添加,有些文件存在于SC中并且没有更改,所以我不需要对它们做任何事情。

我的问题是我无法弄清楚如何检查源控件中是否已经存在文件,所以我无法在我的代码中决定是否应该添加或编辑它。 Workspace方法似乎都不能满足我的需要。

我的代码:

foreach (string file in fileList)
{
    workspace.PendEdit(file);
    workspace.PendAdd(file);
}

它完成了这项工作,但看起来很愚蠢而感觉很慢。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:11)

我不知道'正确',但在我的一个工具中,我使用VersionControlServer.ServerItemExists来获得你想要的东西。

在你的情况下你我必须检查这样的事情:

versionControlServer.ServerItemExists(workspace.GetServerItemForLocalItem("filePath"), ItemType.Any)