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);            //删除映射
相关文章
相关标签/搜索