TFS二次開發04——工做區(Workspace)和映射(Mapping)

在前面幾節介紹了怎樣讀取TFS服務器上的項目以及文件的信息,這一節將介紹怎麼創建服務器和本地的映射(Mapping)。c#

 

引用命名空間服務器

usingMicrosoft.TeamFoundation.Client;app

using Microsoft.TeamFoundation.VersionControl.Client;spa

一:Workspace

  工做區 是服務器的文件、目錄在客戶端的映像。當用戶對源代碼管理中的目標進行增長、編輯、刪除、移動、重命名,或者其餘操做時,用戶的修改會保留在工做空間中,標記爲工做空間中的「待定/未提交修改」(Pending Change)。這些修改只有被用戶簽入(Check In)後,服務器上的文件或目錄纔會跟着改變。orm

string tpcURL = "http://192.168.83.70:8080/tfs/platform";
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(tpcURL));
VersionControlServer version = tpc.GetService(typeof(VersionControlServer)) as VersionControlServer;
     
Workspace ws1 = version.CreateWorkspace("WorkSpaceTest1");//建立工做區
Workspace ws3 = version.CreateWorkspace("WorkSpaceTest2", Environment.UserName);//建立工做區,並指定用戶
     
//CreateWorkspace還有以下重載:
//public Workspace CreateWorkspace(string name, string owner);
//public Workspace CreateWorkspace(string name, string owner, string comment);
//public Workspace CreateWorkspace(string name, string owner, string comment, WorkingFolder[] mappings);
//public Workspace CreateWorkspace(string name, string owner, string comment, WorkingFolder[] mappings, string computer);
//public Workspace CreateWorkspace(string name, string owner, string comment, WorkingFolder[] mappings, string computer, bool fixMappingErrors);
//public Workspace CreateWorkspace(string name, string owner, string comment, WorkingFolder[] mappings, string computer, WorkspacePermissionProfile permissionsProfile, bool fixMappingErrors);
     
Workspace[] wss = version.QueryWorkspaces(null, Environment.UserName, Environment.MachineName);//查詢工做區
// QueryWorkspaces(string workspaceName, string workspaceOwner, string computer);
// 第一個參數能夠爲null,即查詢指定機器指定用戶下的全部工做區。也能夠查詢遠程機器上的。
     
foreach (var item in wss)
{
    Console.WriteLine(item.Name);           //工做區名稱
    Console.WriteLine(item.OwnerName);      //用戶
    Console.WriteLine(item.DisplayName);    //工做區顯示名稱 通常顯示格式爲:「工做區名稱;用戶」
    Console.WriteLine(item.Computer);       //機器名稱
    Console.WriteLine(item);                //機器名稱
}
     
version.GetWorkspace("WorkSpaceTest");      //根據名稱獲取工做區
version.DeleteWorkspace("WorkSpaceTest1", Environment.UserName);//刪除工做區

 

二:Mapping

映射(Mapping)就是把TFS服務文件夾的路徑和本地客戶端上相應路徑對應起來,它是屬於工做區下面的一個概念,因此有關映像的各類操做都依賴於工做區(workspace)。具體看下面代碼:
string serverItem = "$/";
string localItem = "E:\\TFS62";
      
//聲明一個工做目錄,讓TFS服務器上的路徑客戶端路徑 對應起來。WorkingFolder 繼承 Mapping 
WorkingFolder wf = new WorkingFolder(serverItem, localItem);
      
ws.CreateMapping(wf);   //建立映射。咱們也能夠這樣: ws.Map(serverItem,localItem);
      
ws.IsLocalPathMapped(serverItem);    // 判斷指定服務端路徑是否映射到本地
ws.IsLocalPathMapped(localItem);     // 判斷指定客戶端路徑是否映射到服務器
      
//  若是一個serverItem或localItem 以前已經映像過了能夠這樣獲取
WorkingFolder wf = ws.GetWorkingFolderForServerItem(serverPath);
//  或者
WorkingFolder wf = ws.GetWorkingFolderForLocalItem(localPath);
      
ws.DeleteMapping(wf);            //刪除映射
相關文章
相關標籤/搜索