C# 使用TFS Api查询我的工作区是否有最新的文件
我想通过编程来确定工作区是否有最新的文件。我不想做一个C# 使用TFS Api查询我的工作区是否有最新的文件,c#,.net,tfs-sdk,C#,.net,Tfs Sdk,我想通过编程来确定工作区是否有最新的文件。我不想做一个Workspace.Get(),因为这相当于“获取最新信息”。我只是想知道我的工作区是否需要“获取最新信息” 我在构建期间执行此检查。我计划使用如下方法: public static bool HasLatestFiles(Workspace ws) { bool hasChanges = false; /* need correct code to query if ws has latest files */
Workspace.Get()
,因为这相当于“获取最新信息”。我只是想知道我的工作区是否需要“获取最新信息”
我在构建期间执行此检查。我计划使用如下方法:
public static bool HasLatestFiles(Workspace ws)
{
bool hasChanges = false;
/* need correct code to query if ws has latest files */
return hasChanges;
}
正确的代码是什么?使用Workspace.Get(最新版本spec.Instance,GetOptions.Preview)
然后检查GetStatus.NoActionNeeded
操作生成的Get
因此:
PS:我发现
hasChanges=false
非常令人困惑。因为您需要返回相反的结果来判断用户是否拥有最新的文件。PS:如果您计划无论如何都要获取最新的文件,那么如果工作区“过时”,那么您最好只调用获取最新的文件。这更快了。很抱歉“hasChanges=false”,这是我尝试过的几种不同方法的遗留问题。我不打算做一个获取最新的,但我想通知建设者,他没有最新的文件。工作完美!谢谢如何获得最新版本?我注意到在VS.NET的源代码管理中使用命令比调用APIworkspace.Get(new-GetRequest(targetBranch,RecursionType.Full,VersionSpec.Latest),GetOptions.GetAll)要快得多代码>我认为您不需要getall,这会强制覆盖所有文件,而不仅仅是更改的文件。
public static bool HasLatestFiles(Workspace ws)
{
GetStatus result = ws.Get(LatestVersionSpec.Instance, GetOptions.Preview);
bool hasLatestFiles = result.NoActionNeeded;
return hasLatestFiles;
}