Team Foundation Server 使用指南[转]
上一篇文章已经简略介绍过TFS的安装与管理,本篇文章主要描述一下我个人在工作过程中使用TFS的一些指南与建议。本章内容预览:
1. 项目计划与跟踪
经常有很多朋友在日常聊天中抱怨做计划很无畏,因为计划永远赶不上变化。确实如此,计划是赶不上变化,但你不计划,你永远不知道自己应该要做什么,什么时候做,虽然发生了变化,但是你可以根据原有的计划定制事情变化的解决方案与变化的定位,而控制变化的演变。
1.1. 使用Project制定项目计划
新建一个Project文件,或者打开TFS团队资源管理器中对话框中的项目-文档-项目管理-开发项目计划.xlsx文件。此时打开的文件均为一个空的Project文件,可以在此文件中进行计划规划。
选择Project的团队选项卡,点击选择团队项目,如图:
然后再弹出的对话框中选择所需要发布的项目,确认后Project会默认加入TFS相关的标题字段以及功能选项。
现在要做的工作就是在Project中指定你的项目计划,操作与平常一样。大致如下:
Step1:制定迭代计划以及本次迭代的大方向工作计划。
Step2:列出本次迭代的所有工作内容,排列优先级以及依赖关系。
Step3:预估每个工作任务的内容、开始时间、结束时间、资源以及预计工期。
计划完成后则需要同步到TFS,以便其他小组成员或组长可以获取任务并进行更详细的分解。同步操作十分简单,只需要点击团队选项卡下的发布按钮即可。
注意:若填写的项目计划在同步中出现异常或者不符合要求,则会自动弹出错误的项以及建议修改的说明。如图:
发布完成后,可以通知各小组组长对计划进行更详尽的划分。
为了可以成员更快速定位到自己的任务,这里需要制定一个团队查询,本操作一般由TFS配置管理员进行。操作如下:进入团队管理器,选择项目-团队查询,右键添加,操作如图:
弹出对话框后,配置成如图所示的条件:
设置完成后,点击保存,输入任意一个名称即可(建议“我的工作项”)。
下一步,各小组组长登录到团队资源管理器,点击工作项-团队查询,选择刚刚创建的查询,VS会列出属于本人的所有工作项内容。
如果接受在VS中做计划的,可以直接使用VS提供的各种操作进行计划,但如果希望能在导出到Project中做计划再导入就好了,这样也没问题,操作很简单。
在查询出结果后,点击如图按钮:
这里可以看到可以导出成Excel、Project,我们就选择比较常用的project,选择后会自动创建project文件并刷新数据到文件中。
注意:这里编辑的Project与平常我们多个人共同修改一个Project文件是完全不同的概念。
大功告成,剩下的工作就在Project中指定计划,然后使用发布功能发布到TFS中即可。
任务细化工作完成后,就是到各组员根据分派的任务进行工作。
1.2. 信息关联
好了,开始工作了,大家都把任务状态激活(这个过程可以自行定义,这只是作为一种情况描述),然后开始实现任务的要求,当完成后又回到TFS把任务状态修改为“已解决”,然后又到下一个任务,如此反复。
不过这里提出一点,向上面的使用方式其实不是十分好,TFS提供的任务记录不单单只是记录任务的完成状态,还可以关联很多信息在内,看看新任务的创建对话框:
详细信息可以把该任务是如何做的,遇到什么问题进行记录;
所有链接是可以把源代码的迁入集进行关联,知道任务对哪些代码进行了修改;
附件可以上传一些有关本次任务的截图、文件等其他内容。
我个人建议还是能养成好习惯,尽可能多的把信息关联到任务项中,这样对你、对项目成员、对项目经理都有好处,项目经理能减少沟通成本通过任务项了解到任务的难度以及完成情况,项目组员也能通过任务项了解到项目的一些情况。
1.3. 项目跟踪
有了以上的操作以及数据的积累,对于项目的整体跟踪不再是一件困难是的事情,轻松打开TFS的查询,选择未完成状态的项目,或已经完成的项目,又或者是其他维度,均可以定位当前项目的情况。
当然TFS还提供了很多报表从不同的角度进行分析,提供给项目经理分析项目状况,这些报表与查询均可以自行定制。2. 源代码管理
很多人使用TFS其实都是只是使用了TFS的源代码管理功能,这里简单介绍一下源代码管理我认为挺有用的功能以及如何使用。2.1. Checkin策略
所谓checkin策略就是在你每次进行checkin操作时,都会根据定义的策略检查一下你的请求是否符合要求,最常用的有必须与工作项关联的策略以及checkin必须填写注释等等。
这里可以根据团队项目的特性自行定制或者使用默认提供的策略。
操作如下:选择项目右键选择源代码管理,如图
在弹出窗口中选择迁入策略,选择添加则可以看到目前默认提供的策略:
对于自定义策略的导入与使用,由于篇幅较长,不在本文讨论,详细可查阅微软MSDN。
2.2. 多点Checkout与合并修改
TFS的源代码管理器运行多人共同Checkout一个文件,修改完Checkin的时候会自动帮你合并文件,当出现冲突的时候提供一个编辑器给你选择如何修改,个人感觉比较好用。由于没有checkin冲突代码,暂时无法提供截图说明。
这里简单说明一下:当同一个文件由2个人分别签出时,若2个人修改的同一个文件不同的位置,则代码管理器自动帮你合并;若同时修改同一个地方则会出现冲突编辑器让你选择使用哪个人的版本。
2.3. 打标签
打标签就是为当前的源代码状态做一个标识,以方便日后可以调出此版本的源代码。一般应用场景:发布版本。
操作:右键选择源代码管理器的目录,弹出菜单后选择应用标签,如图:
3. 文档管理
团队资源管理器中的项目下的文档目录,可以提供文档的相关管理功能,一般我们的项目中的文档可以上传到此,作为文档共享和文档版本管理的途径。本人使用windows2008R2的时候发现无法直接打开word文档然后点击编辑进行签出,必须每次下载整个文件,修改完成后整个文件重新上传,google搜索了相关内容好像貌似是一个bug。
4. 生成
若要使用生成服务,必须到服务器进行一些配置。
打开TFS管理控制台,选择生成配置,这里需要新建一个控制器与代理即可,我创建的时候基本是使用默认的属性。
TFS的生成本人一直使用得不太好,没成功过多少次,可能主要与项目的结构或配置有关。新建生成的方法如图:
这部分我一直希望能够修改生成过程模板,让TFS生成好后可以启动VM的虚拟机还原某个状态快照,然后自动部署,然后可以运行自动测试最后提交报告。(尚在研究中)
正常情况下,定义生成的内容有触发器和工作区,其他保留默认基本上没有问题,TFS会根据你指定的工作区进行编译生成以及做单元测试。
5. 使用过程模板
5.1. 工作流程
5.2. 使用敏捷模板
使用默认的敏捷模板提供的工作项如图:
其过程如下:首先定义迭代计划,定义当前迭代的用户情景描述,然后划分实现用户情景的各个子任务,以及设计测试用例,每个任务完成后进行测试反馈BUG。在敏捷的站立会议中,提出来的问题可以由问题工作项记录。
5.3. 模板定制建议
TFS默认提供的工作项模板可以作以下修改:开始时间与结束时间从默认的选项卡中移到第一项,方便我们做计划的时候输入或者查看任务的时候第一视觉看到。对于开始时间与结束时间由于默认的配置 是不从TFS刷新数据到Project,我觉得为了保持TFS与Project的一致性,建议做映射的时候把publishonly=true去掉。同 理,结束时间也存在此问题。
我们习惯做计划都会有计划时间与实际时间,我觉得TFS的开始与结束时间当成是计划的时间,而激活时间、解决时间是本任务的实际开始与结束时间,这 样比较稳妥。但如果这样做,必须规范大家的操作习惯,每次开始任务时则去激活任务,而不是在最后完成任务后再来补TFS的操作。
最后,不要把工具作为工作的负担,我们是应该选择好的工具去提升工作效率和工作方法。不要为了工具而工具,工作中的态度与方法才是最重要的。