VisualSourceSafe教程.docx
- 文档编号:24118477
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:24
- 大小:30.50KB
VisualSourceSafe教程.docx
《VisualSourceSafe教程.docx》由会员分享,可在线阅读,更多相关《VisualSourceSafe教程.docx(24页珍藏版)》请在冰豆网上搜索。
VisualSourceSafe教程
VSS教程
前言
作为版本控制的管理工具,虽然微软的VisualSourceSafe有许多不尽如人意的地方,这也是很多人所抱怨的。
但是我认为,更多时候的使用不便,是因为对工具的不熟悉而导致的。
这个教程是笔者在几个月前考察版本控制时根据VSS的联机帮助文档改编而成的。
与其说是教程,到不如说是一本简明手册,因为其内容涵盖了VSS的全部功能,并从中提取了自认为重要的和有价值的东西,将之翻译成中文。
其中不乏有好的建议和使用技巧,比如:
定期备份完整的VSS数据目录,定期清除临时目录的内容,尽量使用一个数据库存放所有文件,使用虚拟回滚(VirtualRollBack)代替普通回滚,排他性签出的使用,Cloak操作等等,不一而足。
对于Branch/Share/Pin/Label这几项功能的融合使用,正文及附录的相关部分提供了相当不错的范例,演示了如何通过灵活运用诸项功能,以自如应对不同的开发场景。
笔者在看到这部分内容时,一时间有了恍然大悟之感,心中不禁想到,原来VSS也可以如此用法。
相信这些范例对大家也会有不小的启示和“震撼”的。
此外,附录部分的“VSS命令-权限级别对应表”是笔者整理之后的结果,有了它,大家对不同权限的用户可以使用何种功能,自会变得一目了然。
希望这个教程可以对并不十分熟悉VSS的开发人员和管理人员有所帮助,同时也希望可以借此机会澄清一下大家对VSS的一些“偏见”:
)
目录
前言1
1说明3
2概述3
3管理员部分4
3.1维护用户列表(MaintaintheUserList)4
3.1.1添加用户(AddaUser)4
3.1.2更改密码(ChangePasswords)4
3.1.3创建用户列表(CreateaUserList)4
3.1.4删除用户(DeleteaUser)4
3.1.5编辑用户属性(EditUserAttributes)4
3.2管理数据库(ManagetheDatabase)5
3.2.1分析数据目录(AnalyzetheDataFolder)*5
3.2.2数据库打包(ArchiveDatabases)*5
3.2.3清除临时目录(CleanTemporaryFolder)5
3.2.4锁定数据库(LockaDatabase)5
3.3.1权限的传递(RightsPropagation)6
3.3.2安全访问权限(SecurityAccessRights)7
3.3.2.2更高级别的安全控制7
4普通用户部分8
4.1对工程、文件的一般性使用(NormalUseaboutProjectsandFiles)8
4.1.1打开/关闭数据库(Open/CloseaDatabase)8
4.1.2创建新工程(CreateNewProjects)8
4.1.3添加文件、目录、工程(AddFiles,Folders,andProjects)8
4.1.4删除和恢复文件、工程(DeleteandRecoverFilesandProjects)8
4.1.5移动文件和工程(MoveFilesandProjects)8
4.1.6重命名文件、工程(RenameFilesorProjects)9
4.1.7设置工作目录(SetWorkingFolders)9
4.2签入、签出、获取、查看及相关操作(CheckIn/Out、Get、ViewandOtherRelatedUse)9
4.2.1签入签出操作(CheckInandCheckOutFiles)9
4.2.2撤销签出(UndoCheckOut)9
4.2.3获取最近版本(GetLatestVersion)9
4.2.4获取早期版本(GetEarlierVersion)9
4.2.5获取和查看文件、工程(GetandViewFilesandProjects)10
4.2.6回滚到以前版本(RollbacktoPreviousVersions)10
4.2.7多人同时签出一个文件(CheckOutMultipleFiles)*10
4.2.8合并(Merge)*10
4.2.9排他性签出(ExclusiveCheckOut)*11
4.2.10对工程的Cloak操作(CloakProjects)*11
4.3Branch、Share、Label和Pin操作(Branch、Share、LabelandPin)12
4.3.1对文件和工程的Branch/Share操作(BranchandShareFilesandProjects)*12
4.3.2给文件、工程指定标签(LabelFilesandProjects)*12
4.3.3Pin操作(Pin)*13
4.4其他操作(OtherUse)13
4.4.1扩展关键字(ExpandKeywords)*13
4.4.2使用Shadow目录(WorkwithShadowFolders)*14
4.4.3性能优化(OptimizePerformance)*14
4.4.4查找文件(SearchforFiles)15
4.4.5设置密码(SetPasswords)15
4.4.6编写批处理文件(WritingBatchFiles)*15
4.4.7定制SS.INI和SRCSAFE.INI文件(CustomizetheSS.INIandSRCSAFE.INIFiles)17
附录 同时维护一个工程的多个版本(MaintainMultipleVersionsofaProject)17
场景1:
理想情况17
场景2:
文件A的某个版本被错误地包含在Beta1版中17
场景3:
需将bug-fix后的文件A被包含在Beta1版中,而其余文件未曾改动18
场景4:
需将bug-fix后的文件A包含在Beta1版中,而其余文件也作了改动18
场景5:
文件A的一个原有版本需要进行bug-fix,并加入Beta1版中18
附表VSS中部分命令的对应权限级别19
1说明
一、本教程针对不同使用对象提供VisualSourceSafe6.0的若干使用指导,阅读对象包括VisualSourceSafe的管理员和普通用户,以及希望了解如何采用VisualSourceSafe进行软件版本控制的管理人员。
管理员或普通用户在使用VisualSourceSafe的过程中,如果遇到不知如何操作,或者对某些操作的注意事项不甚了解等类似情况时,可以查阅本教程。
二、本教程的"管理员部分"是管理员必读的,如果管理员在除履行其自身职责之外,还兼任普通用户的角色,则可以参阅教程中的"普通用户部分"。
作为一般的普通用户,只需阅读"普通用户部分"即可。
三、教程中列举的操作,加星号者,为高级用法(AdvancedUsage),其余为基本用法(BasicUsage)。
所谓基本用法是指一些通常使用频繁的,或者是使用方法较为简单的操作。
所谓高级用法是指通常使用频率不多,或者较为重要的,或者用法复杂的操作。
四、本教程内容摘选并改编自VisualSourceSafe6.0英文版联机帮助,从中提取了诸多重要信息、容易忽略的内容以及若干注意事项。
一些基本内容(主要指某些基本操作的使用方法)只简单列举了条目,欲了解这些条目的详细情况请查看联机帮助的相关部分,可以通过列于这些条目之后的英文说明在联机帮助中搜索到相关内容。
五、本教程不涉及VisualSourceSafe图形用户界面操作的解释说明,对指定功能的具体操作步骤请查看联机帮助的相关部分。
可以通过列于该功能之后的英文说明在联机帮助中搜索到相关内容。
六、在其他VisualStudio产品中(例如:
VisualC++)可以集成VisualSourceSafe的功能,本教程不涉及有关在其他集成开发环境下如何使用VisualSourceSafe功能的内容,这部分内容主要针对普通用户。
对这些内容的了解,在阅读完本教程之后,将会变得容易。
此外,某些操作在VisualSourceSafe环境下使用更为方便。
2概述
VisualSourceSafe(以下简称VSS)是一种版本控制管理工具。
它通过将各种类型的文件(包括:
文本文件、图像文件、二进制文件、声音文件、视频文件等)存入其内部数据库的方式,帮助你有效地管理工程(Project,关于VSS中工程的概念请见下面)。
它允许你在多个工程间共享同一组文件;你可以将一个文件添加到数据库中,以便其他相关人员使用;任何对文件的更改将被记录下来,以便在任何时候可以恢复到该文件的某个旧版本。
VSS的工程组织方式使团队协作开发变得更为容易和直观。
一个工程是一组存放于VSS数据库内的任意类型的文件,一个工程类似于操作系统中的目录,但VSS为其提供了版本控制、历史记录、文件合并等更多的功能支持。
3管理员部分
3.1维护用户列表(MaintaintheUserList)
3.1.1添加用户(AddaUser)
此处略,详细内容请查阅联机帮助。
3.1.2更改密码(ChangePasswords)
此处略,详细内容请查阅联机帮助。
3.1.3创建用户列表(CreateaUserList)
此处略,详细内容请查阅联机帮助。
3.1.4删除用户(DeleteaUser)
此处略,详细内容请查阅联机帮助。
3.1.5编辑用户属性(EditUserAttributes)
此处略,详细内容请查阅联机帮助。
3.2管理数据库(ManagetheDatabase)
3.2.1分析数据目录(AnalyzetheDataFolder)*
建议你定期备份完整的VSS数据目录(参见数据库打包)。
VSS数据目录中包含有全部工程和文件的数据库信息。
由于网络或操作系统的某些故障,VSS中的文件可能存在错误和不一致问题,AnalyzeVSSDB工具被用来查找和修复这些问题。
在运行该工具前,需要锁定(Lock)所有用户并要求他们退出VSS,用户可以在一个数据库被锁定时保持文件的签出状态(参见锁定数据库)。
建议分两次运行AnalyzeVSSDB工具,第一次修复错误,第二次核查是否仍然存在没有被修复的错误。
数据目录的具体位置是由Data_Path初始化变量在SRCSAFE.INI文件中指定的(参见定制SS.INI和SRCSAFE.INI文件)。
3.2.2数据库打包(ArchiveDatabases)*
你可能需要定期地备份VSS数据库,或者数据库的某一部分。
VSSAdministrator工具提供了此项功能。
它可以:
节省VSS数据库服务器的磁盘空间。
加快显示历史记录操作(ShowHistory)的速度。
便于在多个VSS数据库间传递文件和工程,保持历史记录完整无缺。
备份全部或部分VSS数据库内容并压缩成文件。
3.2.3清除临时目录(CleanTemporaryFolder)
VSS通常在运行时把临时结果放在临时目录里,并在退出前将之删除。
由于某些原因,例如非正常重启,可能导致临时内容残留在目录中。
作为管理员,你有责任定期清除临时目录的内容。
每隔几周一次,当没有任何用户运行VSS或VSSAdministrator时,请清除临时目录的内容。
临时目录的具体位置是由Temp_Path初始化变量在SRCSAFE.INI文件中指定的(参见定制SS.INI和SRCSAFE.INI文件)。
3.2.4锁定数据库(LockaDatabase)
数据库锁定功能将不会自动锁定那些当前已经登录的用户,你应该在锁定数据库之前要求登录用户退出VSS。
在重新允许用户使用VSS之前,需要解除对数据库的锁定。
3.2.5数据库恢复(RestoreDatabases)
此处略,详细内容请查阅联机帮助。
3.2.6使用多个数据库(WorkwithMultipleDatabases)*
缺省时,VSS将所有文件集中放在一个数据库中。
如果可能,应尽量使用一个数据库存放所有文件,这比分多个数据库存放要好,因为:
你不能在多个数据库间共享(Share)文件(参见对文件和工程的Branch/Share操作)。
将位于多个数据库中的内容集中在一起是比较困难的,需要使用VSSAdministrator的Archive功能(参见数据库打包)。
出于安全的考虑,VSS的用户信息,包括密码在内,是和数据一起存放的。
如果为了安全起见,要将信息拆分成多个独立的数据库,
缺省时,VSS将所有文件集中放在一个数据库中。
如果可能,应尽量使用一个数据库存放所有文件,这比分多个数据库存放要好,因为:
你不能在多个数据库间共享(Share)文件(参见对文件和工程的Branch/Share操作)。
将位于多个数据库中的内容集中在一起是比较困难的,需要使用VSSAdministrator的Archive功能(参见数据库打包)。
出于安全的考虑,VSS的用户信息,包括密码在内,是和数据一起存放的。
如果为了安全起见,要将信息拆分成多个独立的数据库,这种信息存储方式将带来极大的便利,但你必须为每个数据库都单独添加用户。
3.3有关权限的话题(AboutRights)
3.3.1权限的传递(RightsPropagation)
当你添加了一个新用户,并为该用户设置了针对某个工程的权限时,将在VSS数据库中建立起一个assignment。
该assignment将会沿着工程树向下传递直至遇到另一个assignment。
例如:
针对工程"$/",你为用户A指定了Add权限(参见安全访问权限),而对于工程"$/Sample",你没有为用户显式指定权限,则该用户将对工程"$/Sample"自动拥有Add权限。
当你在工程"$/Sample/BusinessObject"处为其指定了Read权限后,将阻止早先assignment的向下传递过程,所以用户A对该工程(指"$/Sample/BusinessObject")及其子工程都只具有Read权限了。
当你首次添加一个用户时,该用户在工程"$/"处被赋予的权限由"缺省权限"决定,缺省权限是通过在VSSAdministrator里设置ProjectSecurity属性页的内容来定义的。
你可以通过修改该页内容,全局性地变更所有用户的缺省权限。
3.3.2安全访问权限(SecurityAccessRights)
3.3.2.1缺省安全设置
当安装VSS后,缺省安全设置将被启用。
你可以利用定制的方式,使某些用户拥有对某些工程和某些VSS命令的特定权限。
缺省安全设置很简单,当添加新用户时,你只有两种级别的访问权限可供选择:
只读权限(Read-onlyrights):
用户可以查看VSS中的任何内容,但不能更改。
可读写权限(Read/writerights):
用户可以查看和修改VSS中的任何内容。
如果这样的访问权限级别足以应对日常使用,那么就无需再增强安全控制的级别了。
所有的VSS安全管理都在VSSAdministrator中进行。
任何能运行该程序的用户都可以改变VSS的任意特性,所以最好只有管理员才使用该程序。
3.3.2.2更高级别的安全控制
在VSS中,对工程的安全性控制,是通过制定用户访问权限来实现的。
每个工程仅能被那些具有相应权限的用户访问到,每个命令仅能被那些具有相应权限的用户使用。
可以通过VSSAdministrator来定制权限,以达到更高级别的安全控制。
以下是VSS的权限级别列表,下列每种权限都拥有该权限之前的全部权限。
例如:
拥有CheckOut权限的用户,也将同时拥有Read权限。
(参见附录A2:
VSS中部分命令的对应权限级别)
权限描述
Read(R)类似于缺省安全设置中的只读权限
CheckOut(C)可以使用CheckOut/CheckIn/UndoCheckOut等命令对文件进行修改
Add(A)可以使用Add/Delete/Label/Rename等命令对文件进行修改
Destroy(D)可以使用Destroy/Purge/Rollback等命令对文件实施永久删除操作
4普通用户部分
4.1对工程、文件的一般性使用(NormalUseaboutProjectsandFiles)
4.1.1打开/关闭数据库(Open/CloseaDatabase)
此处略,详细内容请查阅联机帮助。
4.1.2创建新工程(CreateNewProjects)
此处略,详细内容请查阅联机帮助。
4.1.3添加文件、目录、工程(AddFiles,Folders,andProjects)
此处略,详细内容请查阅联机帮助。
4.1.4删除和恢复文件、工程(DeleteandRecoverFilesandProjects)
VSS提供了3种删除文件的方法:
∙Delete:
VSS只把指定文件从当前工程中删除,而在VSS数据库中仍留有该文件的记录。
此外,其他共享了该文件的工程仍保留此文件(参见对文件和工程的Branch/Share操作)。
∙Destroy:
VSS将把指定文件从VSS数据库中彻底删除,其后将无法恢复。
∙Purge:
永久性删除已被Delete掉的文件,其后将无法恢复。
对于共享文件,Delete和Destroy仅将文件从当前所选工程中删除掉,其他共享了该文件的工程,以及VSS数据库中,仍留有此文件。
4.1.5移动文件和工程(MoveFilesandProjects)
移动一个文件的唯一方法是,在文件新所在位置的上一级工程(parentproject)处使该文件共享(参见对文件和工程的Branch/Share操作),然后将原有工程(originalproject)下的该文件Delete或者Destroy(参见删除和恢复文件、工程)。
移动后,文件的历史记录将被保留。
通过使用Move命令,你可以将一个子工程(subproject)从某个上级工程重置到另一个工程下。
该操作不会改变子工程的内容和历史记录,但它会影响上级工程的历史记录(包括子工程所在的原有上级工程和新的上级工程)。
当移动一个工程后,你将无法重建原有上级工程的某个旧版本。
4.1.6重命名文件、工程(RenameFilesorProjects)
若某个文件被多个工程所共享,对该文件的重命名将影响所有工程,而在Branch状态下,则不影响(参见对文件和工程的Branch/Share操作)。
4.1.7设置工作目录(SetWorkingFolders)
此处略,详细内容请查阅联机帮助。
4.2签入、签出、获取、查看及相关操作(CheckIn/Out、Get、ViewandOtherRelatedUse)
4.2.1签入签出操作(CheckInandCheckOutFiles)
此处略,详细内容请查阅联机帮助。
4.2.2撤销签出(UndoCheckOut)
执行该操作时,若用户选择了替换本地文件,则用户将丢失最近一次签出后对该文件在本地的更改。
4.2.3获取最近版本(GetLatestVersion)
此处略,详细内容请查阅联机帮助。
4.2.4获取早期版本(GetEarlierVersion)
此处略,详细内容请查阅联机帮助。
4.2.5获取和查看文件、工程(GetandViewFilesandProjects)
Get操作将文件或工程拷贝至本地的工作目录,并设置为read-only属性。
可以用View操作查看文件内容,此时用户无需设置工作目录。
尽量不要删除vssver.scc文件。
本地工作目录及每个子目录下都包含一个这样的文件,VSS利用其中记录的信息确定本地目录中哪个文件已经更改了。
删除后,将使新一次的Get操作速度减慢。
4.2.6回滚到以前版本(RollbacktoPreviousVersions)
该操作将使文件的内容恢复到先前某个版本时的状态,它将使所有在该版本后所做的改动丢失。
如果你所回滚的文件被多个工程共享,则操作只影响你所指定的那个工程,并且它会自动实行Branch操作(参见对文件和工程的Branch/Share操作)。
建议你使用虚拟回滚(VirtualRollback),它将不会使随后的改动永久丢失。
具体操作如下:
∙选择你要回滚的文件并签出
∙使用Get命令获取某个原有版本到本地
∙签入该文件
4.2.7多人同时签出一个文件(CheckOutMultipleFiles)*
缺省状态下,一个文件只允许一个人签出,管理员可以通过修改配置,允许多人同时签出。
此时,VSS将跟踪所有签出该文件的用户。
每当用户签入时,VSS都将和当前存于数据库内的最新版本进行比较,若用户修改的是同一文件的不同处,VSS将进行简单的合并(Merge),否则提示用户,并且不允许签入。
用户可以通过VSS提供的VisualMerge工具,比较存放于VSS数据库中的文件和本地文件的异同,手工修改本地文件,直到认为已经可以签入时,方才执行最终签入操作。
(参见合并)
4.2.8合并(Merge)*
在VSS中,合并可能发生在3种场合下:
使用MultipleCheckout的工作方式;合并原先已经Branch了的文件;获取(Get)文件。
∙MultipleCheckout:
若多个用户同时签出一个文件,第一个用户只要简单的签入就可以了。
后续用户也可以签入,但他们的更改将需要和其他所有用户的更改合并,VSS将得到完整的更改内容(参见多人同时签出一个文件)。
∙Branch:
当被Branch的文件合并到其中一个分支时,VSS将会把在另一个分支上所做的改动合并到该分支上(参见对文件和工程的Branch/Share操作)。
∙MergeonGet:
在MultipleCheckout工作方式下,当使用GetLatestVersion操作时可能引发合并操作,此时保存在VSS数据库中的内容将合并到本地文件。
但如果某个文件是排他性签出的,则不会引发合并操作(参见排他性签出)。
在完成一个合并之后,VSS遵循如下规则:
∙如果仍有冲突,VSS维持文件的签出状态,为了使文件能顺利签入,你必须排除这些冲突。
∙如果你使用MergeBranches命令,将一个文件合并到一个工程中,而该工程中的对应文件已被签出,该文件将继续保持签出状态(参见对文件和工程的Branch/Share操作)。
∙在任何其他时候,VSS将会提示你,或者在合并后自动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualSourceSafe 教程