




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TFS源代码管理1. 项目和解决方案的结构Visual Studio 使用解决方案 (.sln) 文件将相关的 Visual Studio 项目(.csproj)文件组织在一起。确定如何设置项目和解决方案的结构是一项重要的决策,因为我们选择的模式会带来多方面的后果。例如,它会对我们的开发团队程序将解决方案和项目推入/拉出源代码管理的难易程度、用于引用依赖项的机制以及生成过程产生影响。1.1 解决方案基于我们所处理的是具有大量项目文件的软件开发项目,应该使用多个解决方案文件,按照整个团队项目中的功能子集分组相关项目(即按照系统架构设计说明书中的功能子集分组)。所以,将应用系统拆分为多个解决方案,各解决方案内的所有引用都是项目引用。对各解决方案外部的项目的引用则是文件引用。如果程序集位于解决方案的项目集之外,但仍然想使用项目引用,则可以将原始项目的依赖项(被引用项目)分支到开发人员的项目中。当开发人员想获取新版本的依赖项时,通过执行从原始项目到分支的合并即可实现。如果开发人员由于需要引用当前解决方案的项目集之外的程序集而无法使用项目引用,并且不希望创建从原始项目到他的项目的分支,则必须设置文件引用。解决方案的创建必须由专人或各个项目团队Leader进行操作,其他人员无此操作权限。注:ASP.NET 网站开发有Web Site 和 Web Application 两种编程模型,我们在项目开发中统一使用后者。1.2 项目结构将来自所有团队项目的全部源代码放在一个文件夹下,例如D:TeamDevMES_V2.2SourceCode。同时为每个团队项目创建一个子文件夹,如下例所示:D:TeamDevMES_V2.2SourceCode根容器文件夹,包含所有团队项目Platform平台团队项目的容器文件夹Tool工具团队项目的容器文件夹DataMaintenance数据维护团队项目的容器文件夹AdministrativeApp管理应用团队项目的容器文件夹ProductionApp生产应用团队项目的容器文件夹Report报表团队项目的容器文件夹在各团队项目文件夹下使用的应用程序文件夹结构,如下例所示:ToolTeamProject平台工具团队项目的容器文件夹 Main包含跨项目的 .sln 文件(如有需要)FormDesigner包含 FormDesigner.sln SourceClassLibrary1包含 ClassLibrary1.csproj WebApp1包含 Default.aspx UnitTest包含单元测试项目和源代码(如有需要)ClassLibrary1Test WebApp1Test项目结构的创建必须由专人或各个项目团队Leader进行操作,其他人员只能在创建好的结构下进行开发。解决方案下各项目结构要求详见“$/MES/Development Library/Doc/04 开发文档/开发规范开发的各个层级命名.xlsx”文档。1.3 分支TFS中的分支(Branching)是指把源代码控制系统中的文件和目录复制一份。分支能够保持文件和目录的历史,并且能够把旧的文件上的修改合并到新的文件上去。在新的分支上进行的修改,和原来的分支(一般称为主分支)没有任何关系。通常,分支创建用于推行一个发布、维护之前的发布或并行开发。除非有充足的理由,否则就不应进行分支。以下为几个常见的分支创建场景:1. 如果开发时间紧迫,有可能需要进行并行开发,则应创建分支,主分支代码和分支代码同时开发。在某个时刻再将两个分支合并;2. 如果功能需要细分,则在完成共同的基础功能开发后,通过分支来实现不同版本对应增值功能的开发。在某个时刻再将分支分别合并;3. 如果有一些功能引起了稳定性问题,或者有团队导致了团队间的稳定性问题,则应创建团队分支,以使整个开发工作趋于稳定。在项目中我们使用3个分支对源代码进行管理,它们分别是:DEV分支:开发人员进行项目开发与单元测试;QA分支: 测试人员进行系统与集成测试;UAT分支:联想人员进行验收测试。上述三个分支的创建必须由专人进行操作,其他人员只能在创建好的分支下进行开发。如果项目开发需要新建分支,必须向此人申请。1.4 源代码管理1.4.1 文件管理 需要进行版本控制的文件下面的列表识别了应添加到源代码管理的关键代码文件类型。应在单击“将解决方案添加到源代码管理”时将这些文件类型添加到其中。文件类型说明解决方案文件(*.sln)它包含成员项目的列表、依赖项信息、生成配置细节和源代码管理供应者细节。项目文件(*.csproj)它包含程序集生成设置、引用程序集(按名称和路径)和文件清单。Visual Studio 源代码管理项目元数据(*.vspscc)它们维护项目绑定、排除列表、源代码管理供应者名称和其他源代码管理元数据。应用程序配置文件(*.config)可扩展标记语言 (XML) 配置文件包含项目和应用程序的具体细节,用于控制应用程序的运行时行为。源文件*.aspx、*.svc、*.cs等)源代码文件。二进制依赖项(*.dll)如果项目依赖于二进制依赖项,例如第三方动态链接库(DLL),还应在源代码管理中将其添加到项目中。 不应进行版本控制的文件以下列表文件特定于各开发人员,因此不应添加到版本控制中:文件类型说明解决方案用户选项文件(*.suo)这些文件中包含一位开发人员对 Visual Studio IDE 进行的个性化自定义操作。项目用户选项文件(*.csproj.user)这些文件中包含特定于开发人员的项目选项和可选引用路径,Visual Studio 使用它来定位引用的程序集。WebInfo 文件(*.csproj.webinfo)此文件跟踪项目的虚拟根位置。此文件不会添加到源代码管理中,以允许各开发人员为自己的项目工作副本指定不同的虚拟根。尽管这种功能是存在的,但建议所有团队成员在开发 Web 应用程序时都使用一个一致(本地)的虚拟根位置。生成输出包括程序集 DLL、互操作程序集 DLL 和可执行文件 (EXE)。1.4.2 签入签出管理 签入TFS中的签入是指将本地对代码的修改(包括添加项目、添加文件、修改代码、修改解决方案设置等任何使受控制的文件发生了变化的操作)反映到服务器上,使其他团队成员可以立即获取到最新的源代码。.1 仅在准备共享代码时签入代码仅在完全通过单元测试并且准备与团队的其他人共享时,才能将更新的代码签入源代码管理中。对尚未完成的中间工作使用搁置集。当开发人员签入代码时,该代码将用作下一个预定生成的一部分。任何不完善的代码都可能导致生成不稳定。此外当签入代码时,执行“获取最新版本”操作的任何其他开发人员都将获取到此开发人员的更改。如果它们不完善或测试不适当,则它们将引起其他开发人员的问题。.2 使用搁置集备份或共享挂起的更改使用搁置集备份包含开发人员尚未准备签入的挂起的更改的文件。还可以使用搁置集共享代码以便查看代码,或者可以终止其他开发人员的开发任务。通过使用搁置集,开发人员可以将挂起的更改上载到服务器,而无需签入部分完成的工作,从而导致生成不稳定。开发人员可以在休息日前将自己开发的源代码通过搁置集方式上传到服务器保存,上班日再获取源代码继续开发,以保证源代码的安全。.3 在合并后、签入前生成并运行测试执行合并之后,确保在签入合并的文件之前,编译该代码并运行关联的测试。执行此操作可以避免由于合并导致生成不稳定。.4 每个签入解决一个可测试的功能点.5 避免冲突开始在一个文件上工作之前,确保从源代码管理中获得最新版本,并查看是否其他人已将该文件签出,然后再开始工作。使用 Visual Studio 合并工具解决合并冲突。如果在合并期间检测到冲突,可以自动或手动解决冲突。如果选择手动解决冲突,即可在合并工具中保留源更改、保留目标更改或解决冲突。解决了文件中的所有冲突后,将最终版本保存为要签入目标分支中的挂起的更改。进行合并时要格外小心,因为很容易发生一些导致生成不稳定的错误。完成合并后,编译所得到的源代码,并运行单元测试来测试主要中断。.6 签入备注开发人员在签入源代码在前,必须在签入注释栏内详细填写签入理由。如果代码需要审核,则必须告知审核人员并请求其审核源代码,审核完毕后,由审核人员在签入说明项的“Code Reviewer”栏中填写审核人员名称。 签出、获取和锁定.1 在进行更改前获得最新源代码要确保开发人员具有正在处理的项目最新版本的所有源文件,请首先运行“获取最新版本”命令,然后再签出文件进行编辑。不执行此操作的危险是,以后将文件签入服务器时,根据非最新源文件本地生成代码会增加代码引起生成问题的可能性。.2 签出时必须使用锁定命令如果开发人员担心存在冲突,从而导致手动合并操作更复杂,则应该只在进行编辑时锁定文件。如果想避免任何冲突的可能,请使用签出锁定,这会阻止其他人签出以及签入同一文件。.3 在锁定文件时要与同一团队中的伙伴沟通如果开发人员锁定源文件,需要让团队成员知道,以便他们可以围绕该文件的不可用性计划他们的工作。1.4.3 发布与更新源代码的发布与更新主要针对QA与UAT流程。在这两个流程中,由于相关人员可能不熟悉项目源代码的发布规则与更新规则,有可能在发布与更新中出现错误,从而影响正常的工作开展。所以,需要由专人事先制定出针对这两个流程的发布与更新规则:1. 由专人配置服务器IIS站点、服务项、计划任务等,并部署好数据库等所有系统正常运行所需要的应用与工具;2. 创建自动化部署脚本,协助系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届福建省部分重点高中化学高二第一学期期中学业质量监测模拟试题含解析
- 2025年《危险化学品事故应急救援指南》
- 2025年铁路客运站服务项目发展计划
- 2025年:合同履行中影响融资租赁合同效力的关键因素全面解析
- 2025深度分析:项目执行过程中建筑企业的合同管理策略
- 2025租房协议书个人版
- 供应链管理实操课件
- 供应链管理基础课件
- 2025至2030中国金属陶瓷嵌件行业项目调研及市场前景预测评估报告
- 2025至2030中国BDA软件行业项目调研及市场前景预测评估报告
- 2025家电购销合同范本
- 非煤矿职工职业卫生培训
- 2025年节能减排生态环保知识竞赛试题库及参考答案
- 墙绘设计方案汇报
- 2025年湖北省中考化学试题深度解读及答案详解
- 2025年内蒙古中考语文试卷真题及答案详解(精校打印)
- 成人患者营养不良诊断与应用指南(2025版)解读
- GB/T 45774.1-2025陶瓷砖表面抗菌活性的定量测定试验方法第1部分:含有抗菌剂陶瓷砖表面
- 1.5 植物的变化 教案 教科版小学一年级科学上册
- 基于WIFI的智能家居系统的设计与实现
- 风机安全考试试题及答案
评论
0/150
提交评论