TFS二次开发系列:六、TFS的版本控制
在TFS中对于版本控制是在WorkSpace工作区来控制的。
首先我们先整理WorkSpace的一些基本使用方法。
CheckIn:迁入挂起的操作
CreateMapping:创建一个本地映射地址
Delete:删除工作区
GetPendingChanges:获取挂起的工作区
Merge:合并工作项
PendAdd:排队文件或一个文件夹添加到版本控制储存库
PendBranch:计划一个文件或文件夹的分支
PendDelete:队列删除文件或文件夹的从版本控制储存库
PendEdit:编辑签出文件从版本控制储存库
其次我们通过一个实例来看看如何创建本地映射地址,获取挂起工作区,排队文件,迁入挂起等操作。
//TFSURI
Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs");
TfsTeamProjectCollection projectCollection = new TfsTeamProjectCollection(tfsUri);
//设置版本控制Server
VersionControlServer versionControl = projectCollection.GetService<VersionControlServer>(); //设置工作空间名称
String workspaceName = String.Format("{0}-{1}", Environment.MachineName, "Test"); Workspace workspace = versionControl.GetWorkspace(workspaceName, versionControl.AuthorizedUser);
//设置服务器文件夹
var serverFolder = "$/Calueng";
//设置本地映射文件
var localFolder = Path.Combine("C:\\Temp\\", "Test");
//设置为工作目录文件夹
var workingFolder = new WorkingFolder(serverFolder, localFolder); // 创建工作空间的本地映射地址
workspace.CreateMapping(workingFolder); // 获取工作空间的文件并且下载所有文件
workspace.Get(); // 创建一个测试文件夹
String newFolder = Path.Combine(workspace.Folders[].LocalItem, "测试文件夹");
Directory.CreateDirectory(newFolder);
String newFilename = Path.Combine(newFolder, "测试文档1.txt"); // 创建一个测试文件
using (var streamWriter = new StreamWriter(newFilename))
{
streamWriter.WriteLine("这是测试文件的文字");
}
//将这个文件排队等待迁入TFS管理
workspace.PendAdd(Path.GetDirectoryName(newFilename), true); // 创建等待添加的文件项集合
var pendingAdds = new List<PendingChange>(workspace.GetPendingChanges()); // 将工作项CheckIn系统中
int changesetForAdd = workspace.CheckIn(pendingAdds.ToArray(), "这里是备注消息");
Console.WriteLine("迁入了工作项 {0}", changesetForAdd);
Console.ReadLine();
如需源码请点击 TFSTest2.rar 下载
TFS二次开发系列:六、TFS的版本控制的更多相关文章
- TFS二次开发系列索引
TFS二次开发11——标签(Label) TFS二次开发10——分组(Group)和成员(Member) TFS二次开发09——查看文件历史(QueryHistory) TFS二次开发08——分支(B ...
- TFS二次开发系列:三、TFS二次开发的第一个实例
首先我们需要认识TFS二次开发的两大获取服务对象的类. 他们分别为TfsConfigurationServer和TfsTeamProjectCollection,他们的不同点在于可以获取不同的TFS ...
- TFS二次开发系列:七、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)
在TFS二次开发中,我们可能会根据某一些情况对各个项目的PBI.BUG等工作项进行统计.在本文中将大略讲解如果进行这些数据统计. 一:连接TFS服务器,并且得到之后需要使用到的类方法. /// < ...
- TFS二次开发02——连接TFS
在上一篇<TFS二次开发01——TeamProjectsPicher>介绍了 TeamProjectsPicher 对象,使用该对象可以很简单的实现连接TFS. 但是如果我们要实现自定义 ...
- TFS二次开发系列:二、TFS的安装
本系列的实例将采用TFS 2012+Sql Server2012编写. TFS的完整版本安装最好是在Windows server2008 64位以上版本中,其包括64位的SQL SERVER 2012 ...
- TFS二次开发系列:五、工作项查询
本节将讲述如何查询工作项,用于二次开发中定义获取工作项列表. 使用WorkItemStore.Query方法进行查询工作项,其使用的语法和SQL语法类似: Select [标题] from worki ...
- TFS二次开发系列:四、TFS二次开发WorkItem添加和修改、保存
WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接. A.添加工作项 1.首先获得某服务器的WorkItemStore. WorkIte ...
- TFS二次开发系列:一、TFS体系结构和概念
TFS是Team Fundation Server的简称,是微软VSTS的一部分,它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的 ...
- TFS二次开发系列:八、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(二)
上一篇文章我们编写了此例的DTO层,本文将数据访问层封装为逻辑层,提供给界面使用. 1.获取TFS Dto实例,并且可以获取项目集合,以及单独获取某个项目实体 public static TFSSer ...
随机推荐
- js 简易的分页器插件
1.自己引入jquery插件,我的demo是引入的自己本地的query <!DOCTYPE html> <html> <head> <meta charset ...
- java.sql.Connection解决插入数据库中文乱码问题
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public clas ...
- C#字符串的方法
static void Main(string[] args) { StrMethod(); } public static void StrMethod() { string myString = ...
- 关于Java内存模型的解读
运行时数据区域 运行时数据区包括以下五大部分:方法区.堆.虚拟机栈.本地方法栈.程序计数器.其中,方法区和堆是由所有线程共享的数据区,其他区域是线程隔离的数据区. 程序计数器: 程序计数器是一块较小的 ...
- svg gradient
SVG和canvas中是一样的,都是使用标准的HTML/CSS中的颜色表示方法,这些颜色都可以用于fill和stroke属性. 基本有下面这些定义颜色的方式: 1. 颜色名字: 直接使用颜色名字red ...
- Windows Phone 十一、MVVM模式
MVVM 模式介绍 模型-视图-视图模型 (MVVM) 是一种用来分离 UI 和非 UI 代码的应用设计模式 MVVM – 模型(Model) MVVM 中的 Model 与 MVC 中的一致,用于封 ...
- PeopleSoft Home Subdirectories
PeopleSoft Home Subdirectories appserv — home to the Application Server and Process Scheduler Server ...
- Foundation框架
1.框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合,以便使研发程序变的更容易 清除缓存,删除这个文件夹下的所有文件/Users/fanyafang/Library/Developer/X ...
- django静态文件配置
开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等 2. 确保settings.py中的INSTA ...
- AB窗体互传参数
一.找了好几个,都不靠谱,不是说不靠谱,自己感觉太繁琐 二.父窗口传子窗口好传,有两种方法(自己认为比较简单的方法哈), 1第一种方法:在子窗口中新建一个属性:再新建一个方法,当然方法就是把属性个窗体 ...