zoukankan      html  css  js  c++  java
  • TFS二次开发04——工作区(Workspace)和映射(Mapping)

    在前面几节介绍了怎样读取TFS服务器上的项目以及文件的信息,这一节将介绍怎么建立服务器和本地的映射(Mapping)。

    引用命名空间

    usingMicrosoft.TeamFoundation.Client;

    using Microsoft.TeamFoundation.VersionControl.Client;

    一:Workspace

      工作区 是服务器的文件、目录在客户端的映像。当用户对源代码管理中的目标进行增加、编辑、删除、移动、重命名,或者其他操作时,用户的修改会保留在工作空间中,标记为工作空间中的“待定/未提交修改”(Pending Change)。这些修改只有被用户签入(Check In)后,服务器上的文件或目录才会跟着改变。

    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);            //删除映射
  • 相关阅读:
    Centos7 安装redis及简单使用
    Python 网络编程之网络协议(未完待续)
    Docker 安装(centos7下)
    Centos7 下vmware NAT模式配置网络连接与DNS
    Docker 初识
    八月份第五周学习总结
    八月份第四周学习总结
    java 学生信息管理
    八月份第三周学习总结
    八月份第一周学习总结
  • 原文地址:https://www.cnblogs.com/xumingxiang/p/3602255.html
Copyright © 2011-2022 走看看