TFS二次开发-基线文件管理器(4)-标签的创建
来源:互联网 发布:jre源码 编辑:程序博客网 时间:2024/05/21 21:46
上一节已经完成了源码文件的读取,如果要将已经选择的文件保存为一个标签(Lable)。在VS我们只能对一个目录做标签,非常的不方便。如果用下面的方法,将选择的文件路径保存为一个List在打标签,就非常的灵活了。
保存为List的方法很简单,需要递归将已经选择的书中的文件保存一下。
这里为了显示方便,我先将其存入一个Listbox中,
listBox1.Items.Clear();for (int i = 0; i < treeView1.Nodes.Count; i++){TreeNode node = treeView1.Nodes[i];SetTreeViewList(node);}
递归选取树中选择的节点并放入到Listbox中
public void SetTreeViewList(TreeNode nodes) { //防止节点没有子节点被忽略 if (nodes.Checked) { listBox1.Items.Add(nodes.Text); } //有子节点 foreach (TreeNode newNode in nodes.Nodes) { if (newNode.Nodes.Count > 0) { SetTreeViewList(newNode); } //判断孩子节点 else { if (newNode.Checked) { //显示路径及版本 listBox1.Items.Add(newNode.Text); } } } }
下面是将文件路径保存为标签。
//确定文件数 int FileNum = listBox1.Items.Count; //这个path好似没用,不影响,所以写死了 string path = "$/test2-agile"; var versionControlLabel = new VersionControlLabel(version, "标签名称", version.AuthorizedUser, path, "标签注释"); //建立数组,每一个文件需要一个 var labelItemSpec = new LabelItemSpec[FileNum]; for (int i = 0; i < FileNum; i++) { string FileURL = TFSCommon.GetFileURL(listBox1.Items[i].ToString()); //判断是否为文件,因为有可能选的是路径,所以写了一个判断是否为文件的方法 if (!TFSCommon.IsFile(FileURL)) { MessageBox.Show("请选择文件"); return; } //RecursionType 设置递归类型 var itemSpec = new ItemSpec(FileURL, RecursionType.Full); labelItemSpec[i] = new LabelItemSpec(itemSpec, VersionSpec.Latest, false); } //创建lable //LabelChildOption其中三个选项,Fail = 失败, Replace = 替换, Merge = 合并 var lb = version.CreateLabel(versionControlLabel, labelItemSpec, LabelChildOption.Replace); MessageBox.Show(lb[0].Status.ToString());
这里可以看到,标签的名称和注释可以自己写,比较灵活。在保存Lable的时候有三个选项。分别是失败、替换、合并。
当遇到同名标签的时候,如果选择失败会提示。如果选择替换会将原有标签替换为这次保存的文件。如果是合并,会将两次的标签合并。
0 0
- TFS二次开发-基线文件管理器(4)-标签的创建
- TFS二次开发-基线文件管理器(2)-TFS登录
- TFS二次开发-基线文件管理器(1)-设计
- TFS二次开发-基线文件管理器(3)-源码文件的读取
- TFS二次开发-基线文件管理器(5)-源码文件的读取
- TFS二次开发系列:二、TFS的安装
- TFS代码管理器的配置
- 创建AWR 基线(baseline)
- 创建基线或发行基线的主要步骤
- TFS 2008的源码管理器-数据库相关
- eclipse无法生成class问文件的解决方法(使用TFS作为源代码管理器)
- 创建vs2013开发工具中的源代码管理器TFS
- 安装TFS团队管理器
- 安装TFS团队管理器
- TFS上分支和标签的用法
- IOS开发Label标签基线、显示行数的控制2
- TFS 部署管理器 - 自动化你的部署流程
- 创建AWR 基线(baseline
- Linux中的Printk与dmesg功能(模块编译,printk无法打印信息)
- C++常用关键字(C++11更新)
- 2-2用于播放硬盘中的视频文件
- 用MySQL命令对表和相关表结构进行修改
- 对于String对象,可以使用"="赋值,也可以使用"new"关键字赋值,两种方式有什么区别?
- TFS二次开发-基线文件管理器(4)-标签的创建
- 牛老师爱钻牛角尖
- 【OC学习-34】通知NSNotification,类似于KVO,用于对象之间监听然后发通知提醒
- Android ADB使用之详细篇
- bcb2010下编译jsoncpp
- 客户端连接rtsp的步骤
- CPU工作状态的知识介绍
- vs2010不同源文件的调用
- android cocos2dx游戏-添加截屏并分享微博功能