2009-11-09 1 views
5

소스 제어 트리에서 특정 레벨의 변경 사항 (있는 경우)을 알아야합니다. TFS와 같은 쿼리를 작성할 수있는 방법이 있습니까? 그 충분하지 있다면TFS 소스 제어 트리에서 특정 지점 이하의 모든 변경 사항을 찾는 방법

tf history c:\some\subdir -r -format:detailed -noprompt 

회신 : 만약 내가 제대로 이해하고

+0

프로그래밍 방식으로이 작업을 수행 하시겠습니까? –

답변

11

하는 팀 탐색기를 사용하여 :

  1. 오픈 소스 제어 탐색기
  2. 이동하여 원하는 소스 제어 폴더에
  3. 보기 역사

을 마우스 오른쪽 버튼으로 클릭하고 당신에게 모두를 표시 트리 또는 그 아래에서 해당 수준에서 체크인 된 변경 집합. TF 유틸리티 사용


: link


TFS SDK에 사용 : 여기

tf history c:\localFolder -r -format:detailed

는 사용에 대한 자세한 내용은 TF 기록 문서에 대한 링크입니다 프로그래밍 적으로해라. ly :

다음은 Google 코드 중 일부를 기반으로 한 샘플 방법입니다. 경로, 시작 시간 및 종료 시간을 가져 와서 지정한 두 시간 사이에 해당 경로 아래의 모든 변경 집합 세부 정보를 제공합니다.

private StringBuilder GetTfsModifications(string tfsPath, DateTime startTime, DateTime endTime) 
{ 
    StringBuilder bodyContent = new StringBuilder(); 

    TeamFoundationServer tfs = new TeamFoundationServer("YourServerNameHere"); 
    VersionControlServer vcs = (VersionControlServer)tfs.GetService(typeof(VersionControlServer)); 

    // Get collection of changesets below the given path 
    System.Collections.IEnumerable changesets = vcs.QueryHistory(
      tfsPath, 
      VersionSpec.Latest, 
      0, 
      RecursionType.Full, 
      null, 
      new DateVersionSpec(startTime), 
      new DateVersionSpec(endTime), 
      int.MaxValue, 
      true, 
      false); 

    // Iterate through changesets and extract any data you want from them 
    foreach (Changeset changeset in changesets) 
    { 
     StringBuilder changes = new StringBuilder(); 
     StringBuilder assocWorkItems = new StringBuilder(); 

     // Create a list of the associated work items for the ChangeSet 
     foreach (WorkItem assocWorkItem in changeset.WorkItems) 
     { 
      assocWorkItems.Append(assocWorkItem.Id.ToString()); 
     } 

     // Get details from each of the changes in the changeset 
     foreach (Change change in changeset.Changes) 
     { 
      changes.AppendLine(string.Format(CultureInfo.InvariantCulture, "\t{0}\t{1}", 
        PendingChange.GetLocalizedStringForChangeType(change.ChangeType), 
        change.Item.ServerItem)); 
     } 

     // Get some details from the changeset and append the individual change details below it 
     if (changes.Length > 0) 
     { 
      bodyContent.AppendLine(string.Format(CultureInfo.InvariantCulture, "{0}\t{1}\t{2}\t{3}\t{4}", 
        changeset.ChangesetId, 
        changeset.Committer.Substring(changeset.Committer.IndexOf('\\') + 1), 
        changeset.CreationDate, 
        changeset.Comment, 
        assocWorkItems.ToString())); 
      bodyContent.Append(changes.ToString()); 
     } 
    } 

    return bodyContent; 
} 
1

는 대답은 간단 할 수있다.

관련 문제