跟我学在项目中如何应用VSS软件版本管理技术——VSS配置与管理技术及应用
- 格式:pdf
- 大小:390.42 KB
- 文档页数:15
软件配置管理工具Vss6.0实用指南一、版本管理的必要性如果说70年代的软件危机导致了软件工程思想的诞生和理论体系的发展,那么80~90年代尤其是90年代软件产业的迅猛发展导致了另一种新思想的产生和实现,这就是软件的版本管理。
只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对已完成编码调试的软件进行全面的测试。
在软件开发这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。
所有的这些交流反馈意见信息都有可能导致对软件的修改,小的可能只是对某个源文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。
在这个工程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且我们并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实地摆在项目开发管理者的面前,他/她该如何有效地解决这些问题,具体地说就是如下一些问题:1.怎样对研发项目进行整体管理;2.项目开发小组的成员之间如何以一种有效的机制进行协调;3.如何进行对小组成员各自承担的子项目的统一管理;4.如何对研发小组各成员所作的修改进行统一汇总;5.如何保留修改的轨迹,以便撤销错误的改动;6.对在研发过程中形成的软件的各个版本如何进行标识,管理及差异识辨等等。
一个非常直接的反应,我们必须要引进一种管理机制,一个版本管理机制,而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理。
以往的那种被誉为具有良好编程风格的做法,诸如在对他人的源程序进行修改时注释修改原因,修改人和日期,如果是多个成员同时进行了修改,那么需要进行及时的人工的差异比较和综合以便形成一个统一的新版本。
这种做法在当前的大型软件的开发中已经越来越没有空间了,可以说是一种以小作坊的形式来面对软件的社会化大生产,再也不可能行得通了。
Visual Studio Team Services的团队项目管理技巧随着软件开发的不断发展,越来越多的企业开始采用敏捷开发和DevOps的开发流程。
为了更好地提供协作和管理支持,Microsoft推出了Visual Studio Team Services (VSTS)作为一个综合协作平台。
VSTS可以帮助软件开发团队更好地协调、与每位开发人员更好地合作、管理项目并提高开发效率。
在本文中,我们将探讨VSTS的团队项目管理技巧,以此为我们指路。
1.功能和特性Visual Studio Team Services包括各种功能和工具,如工作项跟踪、版本控制系统、持续集成、持续交付等,以便团队协同工作。
其中,团队项目管理流程是它的核心功能之一,使团队成员协同工作并最大化项目效能。
2.项目创建和设置在创建新项目时,你应该为组织创建一个统一的项目命名和命名空间。
这有助于维持项目的组织,不杂乱的代码。
分配团队角色也很重要,包括管理员、项目管理员、构建管理员、测试管理和数据支持。
项目设置是一个重要的过程,可以定义项目的工作项、安全设置和关联的应用程序等。
3.进行项目中的工作项管理在一个团队项目中,有很多工作项和任务,需要优先解决。
VSTS中有不同的级别和状态可以用来跟踪这些。
您可以配置优先级别,解决问题也会遵循软件开发的固定流程。
4.嵌入式分布式版本控制系统版本控制是采用了一个开发团队,何时对代码库进行进一步的更改。
版本控制系统也可以记录任何更改的原因。
VSTS集成了Git和TFVC两种版本控制系统,可用于分布式的开发团队。
5.持续集成和交付在使用VSTS创建的团队项目中,持续集成和持续交付是两个最重要的元素。
持续集成意味着在代码中建立自动化测试,从而加强代码质量和隐藏软件错误。
持续交付是自动将新代码部署到生产环境中。
6.应用程序服务应用程序服务是为开发者构建、部署和扩展现代Web和移动应用程序而构建的云服务平台。
目录1.1在项目中如何应用VSS软件版本管理技术——在JBuilder中集成使用VSS (2)1.1.1集成前的准备工作 (2)1.1.2在JBuilder中将所创建出的项目放入到VSS的服务器中 (3)1.1.3将VSS中的JBuilder项目放入客户机器中 (8)1.1.4在开发过程中对客户端项目中的文件进行Check ou和Check in (12)1.1.5在VSS的客户端来查看所修改后的结果和查看历史记录 (20)1.1在项目中如何应用VSS软件版本管理技术——在JBuilder中集成使用VSS 1.1.1集成前的准备工作——下面的工作一般是由VSS的管理员来完成1、在VSS的服务端创建出项目的各个用户输入用户的名称如:yang,密码为:12342、VSS的客户端登录到VSS的服务器,数据库选择为前面所创建出的3、将进入VSS的客户端系统1.1.2在 JBuilder中将所创建出的项目放入到VSS的服务器中1、在JBuilder中新建一个Project并放入VSS中当开发小组中某个人在JBuilder中建立好项目的工程后,要将该工程放入VSS 中。
具体可以采用下面的方法选择Team—Select Project VCS●在对话框内,选择“Visual SourceSafe”项目,并点击“Ok”按钮2、将项目放入到VSS的服务器中注意:如果在JBuilder中已经创建好了Project后,则应该选择Team---Place Project into VSS,表示将JBuilder中的project放入到VSS的服务器中,而如果project已经存在在VSS的服务器中,则可以选择Pull Project from VSS表示从VSS中获得原来的Project。
●本实验则是将JBuilder中的项目放入VSS中!因此,选择下面的菜单项目●在下面的对话框内选择输入SourceSafe所在的路径在下面的对话框内的directory内进入C:\Program Files\Microsoft Visual Studio\VSS\win32的目录下(该目录包含有VSS.exe的程序,这样JBuilder能够自己去调用它---如果您的VSS 不是标准安装,目录路径将可能不一样!但只要是VSS.exe的目录路径就可以)。
目录1.1VSS服务器和客户的配置管理(第1部分) (2)1.1.1创建一个VSS数据库 (2)1.1.2VSS6.0服务器的配置和管理 (6)1.1.3VSS中的项目安全与用户访问权限 (11)1.1VSS服务器和客户的配置管理(第1部分)1.1.1创建一个VSS数据库VSS6.0服务器的配置和管理----首先,为整个项目创建一个VSS数据库,在VSS 6.0服务器安装完毕后,就可以针对开发项目进行VSS服务器的配置和管理,这些工作均需由VSS 管理员来完成。
1、为整个项目创建一个VSS数据库(1)启动服务器端的管理工具----Visual SourceSafe 6.0 Admin管理控制台(2)创建对整个项目进行管理用的数据库注意:在VSS服务器安装时,系统已经创建了一个缺省数据库Common在管理控制台的程序中选择“Tools”菜单中的“Create Database”子菜单(3)决定本项目的管理数据库所在的目录位置(首先应该在服务器的主机磁盘中创建出该数据库的目录,本例为C:\VSSDataBase)(4)因此,在对话框内选择工作目录为前面所创建的目录将作为新的数据库的路径点击文件夹选择对话框中的“OK”按钮以创建出该数据库点击“OK”按钮将创建出该数据库2、配置库的备份在项目开发实施过程的各个阶段,配置管理员应定期做好软件配置库的备份,以防造成劳动成果的丢失而给整个项目及公司带来的严重损失。
备份可按照公司的要求定期(按周或月)进行。
在每个阶段或里程碑处在做完基线工作后应进行备份。
备份文件应存放在不同的地方。
本项目的备份按如下方式进行(参考实现):1)定期备份时间为每个月备份一次,定于每个月的最后一个星期二;2)在各个里程碑时的备份✓当在月末(大于当月20日)达到一个里程碑时,对配置库进行一次备份,取消当月月备份;✓当在月中(大于当月10日,小于等于当月20日)达到一个里程碑时,对配置库进行一次备份,当月月备份不变;✓当在月初(小于当月10日)达到一个里程碑时,不需要对配置库再进行一次备份,当月月备份不变;3)备份的文件要明确标明备份日期,刻录成光盘,在外地封闭开发,现场尚未配备刻录机时,应保存在可靠的计算机中;3、本项目主要划分以下几个里程碑1.1.2VSS6.0服务器的配置和管理----为新创建出的项目管理数据库建立出各个用户(客户)1、VSS默认的安全访问控制每次你安装VSS以后,系统自动激活默认的安全访问控制机制。
vss使用详解1 VSS概述版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失、允许反追踪到早期版本、并能对版本进行分支、合并和管理。
在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。
Visual SourceSafe 是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。
VSS通过将有关项目文档(包括文本文件、图象文件、二进制文件、声音文件、视屏文件)存入数据库进行项目研发管理工作。
用户可以根据需要随时快速有效地共享文件。
文件一旦被添加进VSS,它的每次改动都会被记录下来,用户可以恢复文件的早期版本,项目组的其他成员也可以看到有关文档的最新版本,并对它们进行修改,VSS也同样会将新的改动记录下来。
你还会发现,用 VSS来组织管理项目,使得项目组间的沟通与合作更简易而且直观。
VSS可以同 Visual Basic、Visual C 、Visual J 、Visual InterDev、Visual FoxPro 开发环境以及Microsoft Office 应用程序集成在一起,提供了方便易用、面向项目的版本控制功能。
VisualSourceSafe 可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。
在提倡文件再使用的今天,用户可以同时在文件和项目级进行工作。
Visual SourceSafe 面向项目的特性能更有效地管理工作组应用程序开发工作中的日常任务。
1.1 VSS中的文件当你要修改某个文档时,需要先从数据库中将它签出(check out),或者告诉VSS你要编辑该文档。
VSS会将该文档的副本从数据库中拿到你的工作文件夹(working folder)中,你就可以修改你的文档了。
如果其他用户再想对同一文档进行修改,VSS会产生一个信息,告诉他,该文档已被签出(check out),从而避免多人同时修改文档,以保证文档的安全性。
版本控制⼯具VSS使⽤介绍什么是版本控制?1.怎样对研发项⽬进⾏整体管理 2.项⽬开发⼩组的成员之间如何以⼀种有效的机制进⾏协调 3.如何进⾏对⼩组成员各⾃承担的⼦项⽬的统⼀管理 4.如何对研发⼩组各成员所作的修改进⾏统⼀汇总 5.如何保留修改的轨迹,以便撤销错误的改动6. 对在研发过程中形成的软件的各个版本如何进⾏标识,管理及差异识辨版本控制⼯具介绍•Starteam是⼀个集合了版本控制、构建管理(Build Management)和缺陷跟踪系统为⼀体的软件,并且具有强⼤的图形界⾯,易学易⽤;但管理复杂、维护困难。
2002年底被Borland公司收购。
•PVCSVersion Manager是美国的MERANT公司软件配置管理⼯具PVCS 家族中的⼀个组成部分,它能够实现源代码、可执⾏⽂件、应⽤⽂件、图形⽂件和⽂档的版本管理;它能安全地⽀持软件并⾏开发,对多个软件版本的变更进⾏有效的控制管理。
•ClearCase(CC)是ROSE构件的⼀部分,⽬前最⽜的配置管理⼯具,主要应⽤于复杂的产品发放、分布式团队合作、并⾏的开发和维护任务。
可以控制word, excel,powerpoint , visio等⽂件格式,对于不认识的格式可以⾃⼰定义⼀种类型来标识。
•VisualSourceSafe ( VSS )简单易⽤、⽅便⾼效、与Windows操作系统及微软开发⼯具⾼度集成。
•ConcurrentVersions System ( CVS )是开发源码的并发版本系统,它是⽬前最流⾏的⾯向软件开发⼈员的源代码版本管理解决⽅案。
它可⽤于各种平台,包括 Linux 、Unix和Windows NT/2000/XP等等。
Visual SourceSafe (VSS)概述提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能同 Visual Basic、Visual C++、Visual FoxPro 等开发环境以及 Microsoft Office 应⽤程序集成在⼀起简单⼯作原理VSS中的⼏个重要概念⽂件 fileVSS中我们处理的所有⽂档都叫⽂件操作:check out , check in , undo check out , view项⽬ project存储在VSS数据库中的所有⽂件的集合,类似于“⽂件夹”操作:⽂件的add , delete , edit , share⼯作⽂件夹 working folder在我们的本地机上。
目录1.1在项目中如何应用VSS软件版本管理技术——VSS的配置与管理技术 (2)1.1.1软件开发中版本管理的必要性 (2)1.1.2Visual SourceSafe 的工作原理 (3)1.1.3VSS是如何实现版本控制的 (6)1.1.4VSS服务器端软件的安装 (9)1.1.5VSS客户端软件的安装 (12)1.1.6VSS管理员(配置管理员) (15)1.1在项目中如何应用VSS软件版本管理技术——VSS的配置与管理技术1.1.1软件开发中版本管理的必要性1、软件开发的方式(1)研发小组来共同分析、设计、编码和维护只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对已完成编码调试的软件进行全面的测试。
(2)信息的交流反馈的必要性在软件开发这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。
所有的这些交流反馈意见信息都有可能导致对软件的修改,小的可能只是对某个源文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。
2、软件开发中所要解决的问题在这个工程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且我们并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实地摆在项目开发管理者的面前,他/她该如何有效地解决这些问题,具体地说就是如下一些问题:1)怎样对研发项目进行整体管理;2)项目开发小组的成员之间如何以一种有效的机制进行协调;3)如何进行对小组成员各自承担的子项目的统一管理;4)如何对研发小组各成员所作的修改进行统一汇总;5)如何保留修改的轨迹,以便撤销错误的改动;6)对在研发过程中形成的软件的各个版本如何进行标识,管理及差异识辨等等。
3、版本管理的必要性(1)广义上的版本管理一个非常直接的反应,我们必须要引进一种管理机制,一个版本管理机制,而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理。
(2)避免小作坊的形式-----早期的软件修改控制的方法以往的那种被誉为具有良好编程风格的做法,诸如在对他人的源程序进行修改时注释修改原因,修改人和日期,如果是多个成员同时进行了修改,那么需要进行及时的人工的差异比较和综合以便形成一个统一的新版本。
这种做法在当前的大型软件的开发中已经越来越没有空间了,可以说是一种以小作坊的形式来面对软件的社会化大生产,再也不可能行得通了。
(3)版本控制是软件开发中一项必不可少的管理手段----现在的软件修改控制的方法版本控制也是软件配置管理(Software Configuration Management,SCM)的一个部分。
而软件配置管理,在软件开发过程中占据着非常重要的地位,并且是CMM 2级的一个关键域。
软件配置管理是在项目开发中标识、控制和管理软件变更的一种管理。
配置管理的使用取决于项目规模和复杂性以及风险水平。
软件的规模越大,配置管理就显得越重要。
4、版本控制(Version Control systems)的主要作用源代码版本控制机制是现代软件开发中必不可少的管理机制之一,通常借助版本控制软件即Version Control systems来实现。
版本控制在软件开发中的重要作用如下:1)作为代码仓库有效的管理软件开发中各个不同版本的源代码和文档,占用空间小并且方便各个版本代码和文档的获取。
2)对开发小组中对源代码的访问进行有效的协调(不同的版本控制软件采取不同的协调策略)。
5、常用的版本控制软件主要有Clearcase, CVS, PVCS和Microsoft公司的Visual SourceSafe (VSS)等。
1.1.2Visual SourceSafe 的工作原理VSS 6.0现在是作为Microsoft Visual Studio 6.0这个开发产品家族的一员,如Visual C++ 6.0和Visual J++ 6.0一样。
1、修改之前必须首先CheckinMicrosoft的VSS 6.0解决了软件开发小组长期所面临的版本管理问题,它可能有效地帮助项目开发组的负责人对项目程序进行管理,将所有的项目源文件(包括各种文件类型)以特有的方式存入数据库。
开发组的成员不能对该数据库中的文件进行直接的修改,而是由该版本管理器将该项目的源程序或是子项目的源程序拷贝到各个成员自己的工作目录下进行调试和修改,然后将修改后的项目文件作Checkin提交给VSS,由它进行综合更新。
2、多个项目之间文件的快速高效的共享VSS也支持多个项目之间文件的快速高效的共享。
当某个成员向VSS中添加文件时,该文件将会被备份到数据库中,以便所有的成员都能共享该文件。
而且每个成员对所有的项目文件所作的修改都将被记录到数据库中,从而使得修改的恢复和撤销在任何时刻,任何位置都成为可能。
小组的成员可能得到该项目的最新版本,对它进行修改,并保存一个新的版本。
3、VSS中的几个重要概念为了更好的了解VSS,有必要对如下一些概念给予说明。
(1)首先是项目的概念所谓的项目是一组存在于VSS中的文件(任何格式和类型),可以在项目中或是项目之间进行文件的添加、删除、编辑和共享。
一个项目与操作系统的文件夹有很多的相似之处,但它更好地支持文件合并、历史和版本控制。
所有的文件存在VSS数据库的项目中,开发组成员不能在VSS中的主备份文件上工作(除了检查和版本比对等特殊情况外),而是VSS为每个成员在各自的工作目录下提供一个拷贝以供工作。
尽管在没有工作目录的情况下也可以查看某个文件,但如要真正在VSS管理下工作,就必须要创建一个工作目录。
(2)工作目录(workfolder)它是用户真正对项目文件进行调试修改的地方,当用户checkout文件时,VSS就将文件拷贝到用户的工作目录下,当用户修改了该文件并将其checkin时,VSS再将它从用户的工作目录拷回到VSS 的数据库中。
在用户作checkout时,VSS将会自动管理他的工作目录,诸如创建必要的子目录。
而且工作目录可以随时创建或修改。
(3)版本跟踪VSS提供版本控制和历史服务,而且老版本程序和文档能够被重新得到以便进行bug跟踪或其他目的。
VSS用日期/时间戳来记录文件是何时被checkout或是何时被修改的。
4、VSS的基本组成框架VSS包含多个数据库(database),每个数据库又包含许多的项目,而且可能项目里嵌套着不同的子项目,最后才是你的源文件。
你可以把这个类比成操作系统中的磁盘分区,目录,子目录,文件,每台机器包含许多的磁盘分区,每个分区中包含无数个目录、子目录,在子目录下才是你的文件。
VSS中的用户是基于VSS数据库的,也就是说每个数据库都包含有自己的用户清单。
用户访问权限意思是用户可以访问(包括查看、修改和执行命令等)数据库中的哪些项目,对项目来说就是它只能被那些已经授权的用户访问,也就是所谓的项目安全。
1.1.3VSS是如何实现版本控制的1、版本控制的内容VSS能够维护一个文件的多个版本,包括一个从不同版本之间进行修改的记录。
版本控制包括如下方面:(1)组内协调在一般情况下,确保在任何时刻都只有一个成员对某个特定的文件进行修改,这样可以防止文件被其他成员的修改意外更新。
当然,VSS管理员可以改变此缺省设置以允许对单个文件同时有多个Checkout,并且仍禁止对他人的修改进行覆盖。
(2)版本跟踪对老版本的源代码和其他文件进行归档和跟踪,而且这些版本能够被重新得到以便进行bug跟踪或其他目的。
(3)跨平台开发支持同一代码在跨多个开发平台时的版本控制。
重用或面向对象代码跟踪哪些程序使用了哪些代码可被重用的模块。
2、VSS是如何实现版本控制的VSS用日期/时间戳来记录文件是何时被Checkout或是何时被修改的,以保证一个文件的每个版本都是可恢复的。
它主要利用四种方法来跟踪文件和项目的版本:(1)版本号这是由VSS维护的内部数码,用户对它没有控制权。
每个文件和项目的每个版本都有一个版本号,这些版本号总是一个整数且是递增的。
(2)标签这些是用户赋给某个项目或文件的某个版本的一个字符串,可以是任何格式的长度不超过31字符的字符串。
(3)日期/时间戳它给出了一个文件何时最后被修改的信息,或者是一个文件何时被Checkin。
VSS同时支持12小时和24小时的时间格式。
(4)工作目录工作目录是用户真正对项目文件进行调试修改的地方,当用户Checkout 或提取一个文件时,VSS将该项的内容(文件)拷贝到用户的工作目录下,当用户修改了该文件并将其Checkin 或提交时,VSS再将它从用户的工作目录拷回到VSS的数据库中。
在用户作Checkout时,VSS将会自动管理他的工作目录,诸如创建必要的子目录。
而且工作目录可以随时创建或修改。
3、SourceSafe的主要局限性只能在Windows下运行,不能在Unix, Linux下运行。
SourceSafe不支持异构环境下的配置管理,对用户而言是个麻烦事。
这不是技术问题,是微软公司产品战略决定的。
适合于局域网内的用户群,不适合于通过Internet连接的用户群,因为SourceSafe是通过“共享目录”方式存储文件的。
4、VSS与CVS(Cuncurrent Versions System---并行版本系统)的对比(1)VSS以共享目录提供服务VSS依靠服务器上的一个共享目录提供服务,每一个client必须能够访问这个共享目录。
这也就决定了source safe在TCP/IP环境下使用很困难(对企业内部的局域网则可以)。
对于分布跨越数个城市甚至国家的工作小组来说,只有通过VPN才能够安全的访问source safe 数据库。
而CVS依靠TCP/IP连接提供服务,所以它天生就是为了在internet上协同工作而设计的。
虽然基本的pserver连接安全性不是很高,但是通过使用SSH,可以获得很高的安全性。
另外,VSS使用过程中要遵循的是lock-modify-unlock流程而不是 copy-modify-merge 流程(比如CVS)。
(2)CVS反对对文件上锁的机制VSS以及其他很多传统版本控制工具要求一个文件只能有一个使用者,它必须先checkout 声明编辑文件的独享权力,直到checkin为止。
但是对于地理上不限制使用者位置的CVS来说,等待一个用户checkin是一件痛苦的事情,而互相沟通比一个紧密工作的团体更困难。
CVS采取多个用户可以同时对一个文件进行编辑,然后commit的方式解决这个问题。