在前面几节介绍了怎样读取TFS服务器上的项目以及文件的信息,这一节将介绍怎么建立服务器和本地的映射(Mapping)。
引用命名空间
usingMicrosoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
一:Workspace
工作区 是服务器的文件、目录在客户端的映像。当用户对源代码管理中的目标进行增加、编辑、删除、移动、重命名,或者其他操作时,用户的修改会保留在工作空间中,标记为工作空间中的“待定/未提交修改”(Pending Change)。这些修改只有被用户签入(Check In)后,服务器上的文件或目录才会跟着改变。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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)。具体看下面代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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); //删除映射 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步