2014-10-25 4 views
4

작업 영역에 최신 파일이 있는지 프로그래밍 방식으로 확인하고 싶습니다. 나는 Workspace.Get()을하고 싶지 않습니다. 왜냐하면 "Get Latest"와 동등한 수행을하기 때문입니다. 내 작업 공간에 "최신 정보 얻기"가 필요한지 알고 싶습니다.내 작업 영역에 TFS API를 사용하는 최신 파일이있는 경우 쿼리

그래서 같은 방법을 가지고에 Build.I 계획 중이 검사를하고 있어요 :

public static bool HasLatestFiles(Workspace ws) 
{ 
    bool hasChanges = false; 

    /* need correct code to query if ws has latest files */ 

    return hasChanges; 
} 

사용할 올바른 코드는 무엇입니까?

+0

PS : 나는'hasChanges = FALSE '매우 혼란 발견했다. 사용자가 최신 파일을 가지고 있는지 알려면 역함수를 반환해야합니다. – jessehouwing

+0

추신 : 작업 공간이 '부실'인 경우 최신 최신 정보를 얻으려고한다면 Get-Latest를 호출 할 수도 있습니다. 더 빠릅니다. – jessehouwing

+1

"hasChanges = false"에 대해 유감스럽게 생각합니다. 그것은 내가 시도한 몇 가지 다른 것들로부터 남았습니다. 나는 get-latest를 할 계획이 없지만 빌더에게 최신 파일이 없다는 것을 알려주고 싶습니다. – MRothaus

답변

8

Workspace.Get(LatestVersionSpec.Instance, GetOptions.Preview)을 사용하고 Get 조작으로 산출 된 GetStatus.NoActionNeeded을 확인하십시오. 그래서

:

public static bool HasLatestFiles(Workspace ws) 
{ 
    GetStatus result = ws.Get(LatestVersionSpec.Instance, GetOptions.Preview); 

    bool hasLatestFiles = result.NoActionNeeded; 

    return hasLatestFiles; 
} 
+0

완벽하게 작동합니다! 감사! – MRothaus

+0

어떻게 최신 버전을 구할 수 있습니까? VS.NET의 소스 제어 명령을 사용하면 API를 호출하는 것보다 훨씬 빠르다는 것을 알았습니다. 'workspace.Get (new GetRequest (targetBranch, RecursionType.Full, VersionSpec.Latest), GetOptions.GetAll);' –

+0

getall을 원한다면, 변경된 파일뿐만 아니라 모든 파일을 덮어 쓰게됩니다. – jessehouwing