VSS版本管理使用指南.docx
- 文档编号:5426598
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:18
- 大小:39.67KB
VSS版本管理使用指南.docx
《VSS版本管理使用指南.docx》由会员分享,可在线阅读,更多相关《VSS版本管理使用指南.docx(18页珍藏版)》请在冰豆网上搜索。
VSS版本管理使用指南
VSS版本管理使用指南
V0.1
文档控制页
版本号
制定/变更日期
编制人/修改人
修改说明
审批人
生效日期
备注
2
创建
目录
1.背景知识介绍4
1.1版本管理4
1.2VisualSourceSafe6.0(VSS6)简介4
1.3VSS的简单工作原理4
1.4VSS的基本概念5
1.5VSS6的一些新增的特征和功能6
1.6VSS6的应用6
2.VSS6安装和维护7
2.1InstallVSS6Server7
2.2InstallVSS6Client7
2.3VSS6服务器的配置和管理7
2.4将VSS数据库从5.0格式升级到6.0格式8
2.5VSS6数据库的备份与恢复8
2.6维护VSS6数据库8
3.VSS的使用8
3.1基本操作8
3.2选项12
4.来自MSDN的情景示例13
4.1使用Label13
4.2使用Share、Pin和Branch创建项目的ServicePack14
5.关于开发流程15
5.1目前的方式15
5.2更好的方式15
使用VSS进行版本管理
1.背景知识介绍
1.1版本管理
如果说70年代的软件危机导致了软件工程思想的诞生和理论体系的发展,那么80~90年代尤其是90年代软件产业的迅猛发展导致了另一种新思想的产生和实现,这就是软件的版本管理。
只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对已完成编码调试的软件进行全面的测试。
在软件开发这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。
所有的这些交流反馈意见信息都有可能导致对软件的修改,小的可能只是对某个源文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。
在这个工程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且我们并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实地摆在项目开发管理者的面前,他/她该如何有效地解决这些问题,具体地说就是如下一些问题:
●怎样对研发项目进行整体管理;
●项目开发小组的成员之间如何以一种有效的机制进行协调;
●如何进行对小组成员各自承担的子项目的统一管理;
●如何对研发小组各成员所作的修改进行统一汇总;
●如何保留修改的轨迹,以便撤销错误的改动;
●对在研发过程中形成的软件的各个版本如何进行标识,管理及差异识辨等等。
一个非常直接的反应,我们必须要引进一种管理机制,一个版本管理机制,而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理。
以往的那种被誉为具有良好编程风格的做法,诸如在对他人的源程序进行修改时注释修改原因,修改人和日期,如果是多个成员同时进行了修改,那么需要进行及时的人工的差异比较和综合以便形成一个统一的新版本。
这种做法在当前的大型软件的开发中已经越来越没有空间了,可以说是一种以小作坊的形式来面对软件的社会化大生产,再也不可能行得通了。
其实,版本管理的思想很早就存在于软件开发者的头脑之中,只是以往的认识没有现在人们所意识到的那样迫切。
UNIX的程序开发系统较早就提供了能够进行开发小组中源代码版本管理的工具,现在的Linux更是提供功能强大的能够跨平台的版本管理器,国外公司的基于Windows的版本管理器也已经有了比较成熟的产品,国内的研究单位如北京大学计算机系CASE实验室也在致力于这方面的工作。
1.2VisualSourceSafe6.0(VSS6)简介
VSS6现在是MicrosoftVisualStudio6.0开发产品家族的一员,如VisualC++6.0和VisualJ++6.0一样。
1.3VSS的简单工作原理
Microsoft的VSS6解决了软件开发小组长期所面临的版本管理问题,它可能有效地帮助项目开发组的负责人对项目程序进行管理,将所有的项目源文件(包括各种文件类型)以特有的方式存入数据库。
开发组的成员不能对该数据库中的文件进行直接的修改,而是由该版本管理器将该项目的源程序或是子项目的源程序拷贝到各个成员自己的工作目录下进行调试和修改,然后将修改后的项目文件作Checkin提交给VSS,由它进行综合更新。
VSS也支持多个项目之间文件的快速高效的共享。
当某个成员向VSS中添加文件时,该文件将会被备份到数据库中,以便所有的成员都能共享该文件。
而且每个成员对所有的项目文件所作的修改都将被记录到数据库中,从而使得修改的恢复和撤销在任何时刻,任何位置都成为可能。
小组的成员可能得到该项目的最新版本,对它进行修改,并保存一个新的版本。
VSS的项目组织管理使得开发小组的协调变得简单容易且很直观,当一个和一组文件发放给另一个成员,小组,Web站点或是任何其他的地址,VSS确保他们之间的真正共享及所选的一组文件的不同版本的安全性。
现在,越来越多的开发者可以通过他们的开发环境来访问VSS的功能。
而且VSS可以很容易地与MicrosoftAccess、VisualBasic、VisualC++、VisualFoxPro和其他的开发工具集成在一起,一旦VSS集成到开发环境中,就可以象控件一样使用,能够很好地体现出VSS的易用性和强大功能。
1.4VSS的基本概念
为了更好的了解VSS,有必要对如下一些概念给予说明。
1.4.1项目
所谓的项目是一组存在VSS中的文件(任何类型),可以在项目中或是项目之间进行文件的添加、删除、编辑和共享。
一个项目与操作系统的文件夹有很多的相似之处,但它更好地支持文件合并、历史和版本控制。
所有的文件存在VSS数据库的项目中,开发组成员不能在VSS中的主备份文件上工作(除了检查和版本比对等特殊情况外)而是VSS为每个成员在各自的工作目录下提供一个拷贝以供工作。
尽管在没有工作目录的情况下也可以查看某个文件,但如要真正在VSS管理下工作,就必须要创建一个工作目录。
1.4.2版本控制
VSS能够维护一个文件的多个版本,包括一个从不同版本之间进行修改的记录。
版本控制包括如下方面:
●组内协调:
在一般情况下,确保在任何时刻都只有一个成员对某个特定的文件进行修改,这样可以防止文件被其他成员的修改意外更新。
当然,VSS管理员可以改变此缺省设置以允许对单个文件同时有多个Checkout,并且仍禁止对他人的修改进行覆盖。
●版本跟踪:
对老版本的源代码和其他文件进行归档和跟踪,而且这些版本能够被重新得到以便进行bug跟踪或其他目的。
●跨平台开发:
支持同一代码在跨多个开发平台时的版本控制。
●重用或面向对象代码:
跟踪哪些程序使用了哪些代码可被重用的模块。
版本控制的涵义在以后的章节中将会得到更进一步的论述。
1.4.3版本跟踪
我们已经知道,VSS提供版本控制和历史服务,以保证一个文件的每个版本都是可恢复的。
VSS用日期/时间戳来记录文件是何时被Checkout或是何时被修改的,它主要有三种方法来跟踪文件和项目的版本:
●版本号:
这是由VSS维护的内部数码,用户对它没有控制权。
每个文件和项目的每个版本都有一个版本号,这些版本号总是一个整数且是递增的。
●标签:
这些是用户赋给某个项目或文件的某个版本的一个字符串,可以是任何格式的长度不超过31字符的字符串。
●日期/时间戳:
它给出了一个文件何时最后被修改的信息,或者是一个文件何时被Checkin。
VSS同时支持12小时和24小时的时间格式。
1.4.4工作目录
工作目录是用户真正对项目文件进行调试修改的地方,当用户Checkout或提取一个文件时,VSS将该项拷贝到用户的工作目录下,当用户修改了该文件并将其Checkin或提交时,VSS再将它从用户的工作目录拷回到VSS的数据库中。
在用户作Checkout时,VSS将会自动管理他的工作目录,诸如创建必要的子目录。
而且工作目录可以随时创建或修改。
1.5VSS6的一些新增的特征和功能
1.归档和恢复:
在VSS6中这两个操作是在一个用户界面友好的VSS管理员wizard中进行的,而在以前的版本中,它们只能通过命令行来实现。
2.移动文件:
当用户移动文件时,VSS6自动将该文件共享到一个新的项目中,并在原项目中将其删除。
在新项目中,该文件的属性是共享的。
3.多个项目之间的差异比较:
该功能允许用户在不同的项目之间进行差异比较。
4.单个文件的展开:
在以前的版本中,VSS只能展开一个目录(文件夹),在VSS6中,同时可以展开一个文件。
5.快速提取:
由于VSS6在性能上的提高,现在的文件提取速度比以往VSS版本的快两倍左右。
6.历史信息过滤:
VSS6支持查看那些没有标签的文件和项目的历史。
7.清除临时文件夹选项:
该新功能可使用户很方便地清除临时文件夹。
8.检查外部的超连接:
在VSS的较早的版本中,只有内部的超连接和项目内的跳转才得到检查,VSS6允许用户检查项目之外的超连接和跳转。
9.创建打开VSS数据库的快捷键:
用户可以使用VSSExplorer中该新功能创建一个打开某个特定VSS数据库的桌面快捷键。
10.HTML格式的帮助:
VSS的以往版本使用的是WinHelp格式。
1.6VSS6的应用
首先看一下我们的开发小组所处于的实际情况,最一般的情况是整个项目使用的就是微机环境,每个开发者在各自的Windows微机下利用Delphi来开发项目中各个子项目或子模块,通常这个小组是局域网的一部分或者是一个较为独立的子网,可能配有专门的服务器。
其次是对于项目本身来说,一个项目经过分析设计后一般都会分成若干个子项目由若干个开发小组各自负责编码调试,但软件开发的实际情况决定了各个小组之间并不是完全独立的,他们在很多情况下都需要协调交互和信息反馈,开发过程中的每一步都有可能会导致对前一阶段工作的修正,因为软件开发很大程度上是一个螺旋式的过程,更不用说小组之内的相互交流了。
在这个不断交互改动的过程中,将可能形成的项目的阶段版本、部分版本和完整版本的数量是可想而知的,而以往的通常的版本人工管理方法已是不能胜任了。
而且还有一个非常重要的方面不可忽略,这对系统软件的开发尤为明显,即软件的层次结构。
一般的做法是在通用的系统软件之上为多个应用开发相应的应用程序,与此相对照的项目开发组也一般分为系统开发组和各个应用开发组,应用软件的开发和使用过程中将会反馈回无数的应用本身和系统软件的问题,如果只是针对每个应用来单独修改更新系统软件版本,这样就不可避免地导致多个系统版本的不一致,这样对于真正解决系统所存在的问题就显得力不从心了。
而VSS6正适合于这种软件的开发体系结构,可以为各个小组创建自己的项目,而这些项目又从属于一个总的项目,所有的修改都将被汇总处理以形成一个统一的最新版本。
针对这样最为普通的一个软件开发环境和组织结构,VSS6的应用一般是:
在一台WindowsNT服务器上安装VSS6的服务器端软件,创建一个为该整个项目存放用的数据库,然后在该数据库中创建各个项目和子项目,并由VSS管理员为小组的每个成员创建一个帐号及他们各自的权限;
在开发小组其他成员的PC上安装VSS的客户端软件,并创建自己的工作目录。
在软件的开发过程中,他们要通过该客户端软件登录到VSS服务器上,Checkout当前要进行工作的项目或文件,修改工作结束时将其Checkin提交给VSS服务器进行统一更新。
2.VSS6安装和维护
2.1InstallVSS6Server
在我们给出整个解决方案后,现在来看一下如何安装VSS服务器。
VSS6是MicrosoftVisualStudio6.0套件的成员,我们就以这个版本为例进行说明。
1.将VisualStudio6.0的CD1放入CD-ROM,自动进入安装程序,选择第二项“ServerApplicationsandTools(AddOnly)”;
2.然后在“ServerSetups”的“ServerComponents”中选择“VisualSourceSafeServer”,按“Install”按钮后,根据提示放入CD2;
3.根据InstallationWizard的提示,继续安装过程,选择安装路径,按左上角的按钮,系统继续进行安装,直至提示你重启以使新安装的程序生效,重启计算机。
VSS6服务器的安装比较简单,它既可以安装在WindowsNT下,也可以安装在Windows9x下。
2.2InstallVSS6Client
在VSS6服务器安装完毕后,就可以在VSS管理员的指导下安装客户端的软件。
由于我们是在一个Windows环境的子网内,每台PC客户机均可通过网上邻居来访问VSS服务器。
在VSS管理员为用户指明VSS客户端软件的安装程序“Netsetup.exe”的位置后,用户可以直接通过资源管理器“Explorer”在网上邻居中找到该程序,并双击以运行它。
Netsetup.exe被启动后进入VSS客户端的安装,在如下提示框中输入用户名和工作组名,选择VSS的安装路径后,点击安装图标,进入实际安装步骤,以后的工作将由系统自动完成。
当系统提示你,VSS已成功安装,到此所有的安装工作已经完成。
2.3VSS6服务器的配置和管理
在VSS6服务器安装完毕后,就可以针对开发项目进行VSS服务器的配置和管理,这些工作均需由VSS管理员来完成。
1.为整个项目创建一个VSS数据库(在VSS服务器安装时,系统已经创建了一个缺省数据库Common),启动VSS6Admin,点击下拉菜单Tools中的CreateDatabase...菜单项,将出现窗口,选择新数据库的路径,例如创建MyApp数据库,然后点击OK按钮,系统将完成创建工作。
2.为新创建的数据库(例如MyApp)建立用户,首先需要打开该数据库,点击下拉菜单Users/OpenSourceSafeDatabase...,然后选择数据库MyApp,打开它。
再选择菜单项AddUser...,输入用户名和口令。
然后依次创建其他的用户。
3.在该新建的数据库中创建项目Project。
启动VSS6,出现窗口,点击下拉菜单File中OpenSourceSafeDatabase...,跳出对话框,选择一个数据库(例如MyApp),双击它或按Open按钮一打开该数据库;一个项目Project是一组相关的文档或者是一个文件的集合,VSS允许你以任何的层次结构来存贮和组织你的项目。
在VSS数据库中,你可以创建一个或者多个项目。
点击菜单File中的命令CreateProject...,创建一个项目,例如MyProject;创建完项目MyProject后,需要向MyProject中添加文件,点击File中AddFiles命令,将跳出对话框,选择相应文件或目录,点击Add按钮,将它们添加到MyProject中去。
VSS服务器的配置到此基本上已经完成了,创建了数据库和项目,并为它们建立了相应的用户,这样用户就可以登录到VSS服务器上,进行在VSS控制管理下的开发工作。
2.4将VSS数据库从5.0格式升级到6.0格式
为了利用VSS6.0的优势,通过运行DDUPD.exe命令来将VSS库进行升级
DDUPD.exe在VSS服务器端的Win32目录下。
具体参见help。
2.5VSS6数据库的备份与恢复
1.完全备份:
备份:
备份VSS安装目录下的data目录、user目录、srcsafe.ini、user.txt文件即可。
恢复:
重新安装好VSS6后,将备份的文件拷回去。
2.项目备份:
使用vssadmin程序中Archive菜单的功能进行备份和恢复。
2.6维护VSS6数据库
建议:
每周至少要检查一次数据库,同时清除临时文件夹。
清除临时文件只需执行vssadmin程序tools菜单cleanuptempdirectory功能即可。
2.6.1检查VSS数据库
1.在vssadmin中锁住数据库
2.打开一个命令行窗口,CD到VSS_PATH\win32目录,执行analyze..\data
3.如果发现了错误,你可以使用-F参数来修复数据库。
注意:
在开始修复之前,确认没有人在访问数据库。
4.修正错误后,再执行一遍analyze..\data,确认错误已经修复。
假如还有错误,就需要考虑使用备份来恢复。
2.6.2意外中断的处理
analyze程序在修复数据错误时会在执行目录下生成一个backup文件夹,将其修改的程序存在里面。
假如执行过程中意外中断,可以将此目录下的文件拷贝回去,就可以恢复原状。
2.6.3analyze程序参数说明
请到MicrosoftKnowledgeBase查询文章编号Q190881。
2.6.4Analyze错误信息说明
请到MicrosoftKnowledgeBase查询文章编号Q152807。
3.VSS的使用
3.1基本操作
3.1.1登录
1.点击VSS的图标(或打开VSS的运行程序),出现登录界面(VisualSourceSafeLogin对话框),点击Browse…按纽;
2.出现OpenSourceDatabase的对话框,点击Browse…按纽,出现FindDatabase对话框;
3.在文件名框中输入\\VSS_Server\VSS_PATH\srcsafe.ini,回车(即打开安装服务器端的VSS所在路径的配置文件scrsafe.ini);
4.重回到登录界面,输入用户名及密码就可进入VSS库;一般用户名即为网络名:
姓(全称)+名(首字母),初始密码与用户名相同;
5.进入之后可以在菜单项Tools\ChangePassword..修改密码。
3.1.2SetWorkingDirectory
可以对整个工程Project包括该Project下的所有子Project设置一个工作路径,也可以准确地定义任何一个子Project的工作路径。
必须设定一个工作路径来进行VSS库中的文件对外的操作,包括CheckOut和GetLastestVersion,CheckIn,UndoCheckOut,Merge命令。
如果进行这些命令没有设置工作路径时,VSS库会弹出一个提示框,提示是否要设置工作路径,如果没有选择设置,那么在VSS库中的这些命令无效。
vss库中仅有一个操作命令是不用设置工作路径的,那就是Viewafile。
1)选中想要设置工作路径的Project;
2)在菜单项File下有一个SetWorkingFolder...的命令选项(或者使用快捷键Ctrl+D),点击后弹出一个SetWorkingFolder的对话框;
3)在文件夹的选择框内,选择你使用的工作路径名(已存在的);
4)点击OK,设置的工作路径就显示在VSS库中的右边浏览列表上面。
3.1.3Get
前提:
必须有Read的权限。
如想一直包括子目录的GET,则在
1)菜单项Tools下,点击Options,然后选择General面板;
2)选中ActsonProjectsRecursively的选项框;
3)点击OK即可;
GetEarlierVersion
1)选中你想Get以前版本的文件项;
2)按鼠标右键,点击ShowHistory,弹出HistroyOptions对话框;(如果没有,则按Shift键后会出现)
3)点击OK,显示出GET的对话框;
4)选中你想取到的那个版本项的信息;
5)点击Get,显示Get的对话框;
6)如果事先没有SetWorkingFolder(设置工作路径),VSS会弹出对话框,点击OK,然后设置工作路径;
7)在Get的对话框界面上点击OK,选中的文件版本就会复制到工作路径上。
GetLatestVersionCommand(SourceSafeMenu)
选中你要操作的对象,点击鼠标右键,再点击GetLatestVersion项,即可。
如要包括子目录的选项,则选中Recursive.
3.1.4Checkin/Checkout/UndoCheckout
Checkin
1)选中需checkin的文件,点击鼠标右键,选中Checkin...,出现Checkin相应的对话框;
Comment可输入一些简短的描述(限4095个字符);
KeepCheckedOut更新选中的文件,但文件还保留被checkout的状态;
RemoveLocalCopy删除工作路径中的本地文件;
Diff比较VSS中被checkout的文件与要checkin的文件(单个文件)
2)根据需要选择相应的选项,并填入相应的信息后,点击OK,即可。
Checkout
1)选中需checkout的文件,点击鼠标右键,选中Checkout...,出现Checkout相应的对话框,
Comments选项可输入checkout的一些简短的描述(仅限63个字符);
To显示将VSS中的文件复制到的工作路径,一般默认原有的文件名;
Recursive如是checkout项目,则此选项包括checkout其子项目;
Don'tgetlocalcopyVSS记录选中的文件或项目已checkout,但并没有将文件或是项目复制到对应的工作路径上。
Advance选项略,参见help
2)根据需要选择相应的选项后,点击OK,即可。
undocheckout
1)选中需undocheckout的文件,点击鼠标右键,选中undocheckout...,出现undocheckout相应的对话框;
LocalCopy
Replace用VSS中的原有文件覆盖工作路径上的文件
Delete删除工作路径上的文件;
Leave不对工作路径上的文件进行操作;
2)根据需要选择相应的选项,点击OK,即可。
3.1.5Delete/Purge
Delete
文件或目录被Delete后可以恢复,除非是被Purge(清除)或是Destroy(破坏)了。
1)在VSS库中选中要删除的文件或是工程目录;
2)点击鼠标右键,选中Delete...,弹出一对话框;
3)对话框界面上有一选项Destroypermanently,如想永久删除,则选中此选项(建议一般不选中,否则无法恢复),点击OK,选中的文件或是工程目录就被删除;
Purge
注意:
清除命令不能恢复
1)在VSS库中选中要清除文件的所在目录;
2)点击Properties,弹出界面后选择DeletedItems页;
3)选中你想Purge的文件(可以是多个);
4)点击Purge;
5)出现一提示框,
Purgecannotb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VSS 版本 管理 使用指南