TFS

2016-03-31 24 views
4

yılında çalışma alanları arasındaki son ve farkı alın Ben hereTFS

 private static void GetLatest(string username, string password, string path_to_download, 
       string tf_src_path) 
    { 

     Uri collectionUri = new Uri(PathConstants.uri); 

     NetworkCredential credential = new NetworkCredential(username, password); 
     TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(PathConstants.uri), credential); 
     tfs.EnsureAuthenticated(); 
     VersionControlServer vc = tfs.GetService<VersionControlServer>(); 
     foreach (var item in vc.GetItems(PathConstants.tfsRoot + tf_src_path, VersionSpec.Latest, RecursionType.Full).Items) 
     { 
      string relativePath = _BuildRelativePath(path_to_download, item.ServerItem); 

      switch (item.ItemType) 
      { 
       case ItemType.Any: 
        throw new ArgumentOutOfRangeException("ItemType returned was Any; expected File or Folder."); 
       case ItemType.File: 
        item.DownloadFile(relativePath); 
        break; 
       case ItemType.Folder: 
        Directory.CreateDirectory(relativePath); 
        break; 
      } 
     } 
    } 

aldığım bu kodu kullanılan bunun için TFS yerel çalışma ve serverion sürümü arasındaki fark Ama bu kodu ile birlikte en son değişiklikleri almak istiyorum tüm dosyaları kaynaktan indirir ve varolan dosyaları yerel çalışma alanında değiştirir.

Yalnızca yerel ve sunucu sürümü arasındaki farkı indirmek için herhangi bir yolu var mı? Örneğin. Yerel dosyalarımdaki dosyaları/klasörleri sildiysem, diğer dosyaları değiştirmeden yapılan değişikliklerle ilişkili yeni dosyalarla birlikte indirilmelidirler

cevap

1

Tüm yerel çalışma alanlarındaki tüm dosyaları güncelleştirmelidir.

private static void GetLatest(string username, string password, string path_to_download, 
       string tf_src_path) 
    { 

     Uri collectionUri = new Uri(PathConstants.uri); 
     NetworkCredential credential = new NetworkCredential(username, password); 
     TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(PathConstants.uri), credential); 
     tfs.EnsureAuthenticated(); 
     VersionControlServer vc = tfs.GetService<VersionControlServer>(); 

     foreach (Workspace workspace in vc.QueryWorkspaces(null, null, System.Environment.MachineName)) 
      { 
       foreach (WorkingFolder folder in workspace.Folders) 
       { 
       ItemSpec itemSpec = new ItemSpec(folder.ServerItem, RecursionType.Full); 
       ItemSpec[] specs = new ItemSpec[] { itemSpec }; 
       ExtendedItem[][] extendedItems = workspace.GetExtendedItems(specs, DeletedState.NonDeleted, ItemType.File); 
       ExtendedItem[] extendedItem = extendedItems[0]; 
        foreach (var item in extendedItem) 
        { 
         if (item.VersionLocal != item.VersionLatest) 
         { 
          vc.DownloadFile(item.SourceServerItem, item.LocalItem); 
         } 
        } 
       } 
      } 
     }