我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 学会用版本控制器 隐藏签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

zhoubaozhou





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 696
威望: 0
浮云: 1082
在线等级:
注册时间: 2007-03-13
最后登陆: 2023-01-26

5come5帮你背单词 [ emigrate /'emigreit/ vi. 移居外国,移民 ]


学会用版本控制器

以前写程序都是随心所欲,想怎么改就怎么改,不过相信还少GG都有同感,到最后自已都不知道自已做了什么了。以前看了一下CVS,感觉不太好用。现在用了sourcesafe,呵呵,确实应该用用这个东东了,毕竟软件不是写程序写出来的,是设计出来的。这个软件也很简单,呵呵,我十多分钟就学会基本的操作了,够用了。
下面转一教程

Visual SourceSafe 教程
如需复制、传播,请附上本声明,谢谢。原文出处:http://morningspace.51.net/moyingzz@etang.com




  作为版本控制的管理工具,虽然微软的Visual SourceSafe有许多不尽如人意的地方,这也是很多人所抱怨的。但是我认为,更多时候的使用不便,是因为对工具的不熟悉而导致的。这个教程是笔者在几个月前考察版本控制时根据VSS的联机帮助文档改编而成的。与其说是教程,到不如说是一本简明手册,因为其内容涵盖了VSS的全部功能,并从中提取了自认为重要的和有价值的东西,将之翻译成中文。其中不乏有好的建议和使用技巧,比如:定期备份完整的VSS数据目录,定期清除临时目录的内容,尽量使用一个数据库存放所有文件,使用虚拟回滚(Virtual RollBack)代替普通回滚,排他性签出的使用,Cloak操作等等,不一而足。

  对于Branch/Share/Pin/Label这几项功能的融合使用,正文及附录的相关部分提供了相当不错的范例,演示了如何通过灵活运用诸项功能,以自如应对不同的开发场景。笔者在看到这部分内容时,一时间有了恍然大悟之感,心中不禁想到,原来VSS也可以如此用法。相信这些范例对大家也会有不小的启示和“震撼”的。

  此外,附录部分的“VSS命令-权限级别对应表”是笔者整理之后的结果,有了它,大家对不同权限的用户可以使用何种功能,自会变得一目了然。

  希望这个教程可以对并不十分熟悉VSS的开发人员和管理人员有所帮助,同时也希望可以借此机会澄清一下大家对VSS的一些“偏见”:)


--------------------------------------------------------------------------------

点击此处查看《Visual SourceSafe简明培训教程》

 目录

1 说明

2 概述

3 管理员部分
3.1 维护用户列表
3.1.1 添加用户
3.1.2 更改密码
3.1.3 创建用户列表
3.1.4 删除用户
3.1.5 编辑用户属性
3.2 管理数据库
3.2.1 分析数据目录
3.2.2 数据库打包
3.2.3 清除临时目录
3.2.4 锁定数据库
3.2.5 数据库恢复
3.2.6 使用多个数据库
3.3 有关权限的话题
3.3.1 权限的传递
3.3.2 安全访问权限
4 普通用户部分
4.1 对工程、文件的一般性使用
4.1.1 打开/关闭数据库
4.1.2 创建新工程
4.1.3 添加文件、目录、工程
4.1.4 删除和恢复文件、工程
4.1.5 移动文件和工程
4.1.6 重命名文件、工程
4.1.7 设置工作目录
4.2 签入、签出、获取、查看及相关操作
4.2.1 签入签出操作
4.2.2 撤销签出
4.2.3 获取最近版本
4.2.4 获取早期版本
4.2.5 获取和查看文件、工程
4.2.6 回滚到以前版本
4.2.7 多人同时签出一个文件
4.2.8 合并
4.2.9 排他性签出
4.2.10 对工程的Cloak操作
4.3 Branch、Share、Label和Pin操作
4.3.1 对文件和工程的Branch/Share操作
4.3.2 给文件、工程指定标签
4.3.3 Pin操作
4.4 其他操作
4.4.1 扩展关键字
4.4.2 使用Shadow目录
4.4.3 性能优化
4.4.4 查找文件
4.4.5 设置密码
4.4.6 编写批处理文件
4.4.7 定制SS.INI和SRCSAFE.INI文件
附录
A1 同时维护一个工程的多个版本
A2 VSS中部分命令的对应权限级别



附表 VSS中部分命令的对应权限级别
1 说明2 概述3 管理员部分

下表中打星号表示具有该类权限的用户可以使用该命令。 功能 R C A D
Add    * *
Branch    * *
Check In  * * *
Check Out  * * *
Cloak * * * *
Create [1]    * *
Delete    * *
Destroy      *
Difference * * * *
Get Latest Version * * * *
History * * * *
Label    * *
Links * * * *
Merge [2]  * * *
Merge * * * *
Move [3]    * *
Move      *
Pin  * * *
Purge      *
Recover    * *
Rename    * *
Rollback      *
Share [4]  * * *
Share    * *
Undo Check Out  * * *
Set Working Folder * * * *


[1] 此处指用户必须有对Parent Project的A类权限。
[2] 此处指用户必须有对目的Project的C类权限,同时有对原Project的R类权限。
[3] 此处指用户必须有对目的Parent Project的A类权限,同时有对原Parent Project的D类权限。
[4] 此处指用户必须有对原Project的C类权限,同时有对目的Project的A类权限。



一、本教程针对不同使用对象提供Visual SourceSafe 6.0的若干使用指导,阅读对象包括Visual SourceSafe的管理员和普通用户,以及希望了解如何采用Visual SourceSafe进行软件版本控制的管理人员。管理员或普通用户在使用Visual SourceSafe的过程中,如果遇到不知如何操作,或者对某些操作的注意事项不甚了解等类似情况时,可以查阅本教程。

二、本教程的"管理员部分"是管理员必读的,如果管理员在除履行其自身职责之外,还兼任普通用户的角色,则可以参阅教程中的"普通用户部分"。作为一般的普通用户,只需阅读"普通用户部分"即可。

三、教程中列举的操作,加星号者,为高级用法(Advanced Usage),其余为基本用法(Basic Usage)。所谓基本用法是指一些通常使用频繁的,或者是使用方法较为简单的操作。所谓高级用法是指通常使用频率不多,或者较为重要的,或者用法复杂的操作。

四、本教程内容摘选并改编自Visual SourceSafe 6.0英文版联机帮助,从中提取了诸多重要信息、容易忽略的内容以及若干注意事项。一些基本内容(主要指某些基本操作的使用方法)只简单列举了条目,欲了解这些条目的详细情况请查看联机帮助的相关部分,可以通过列于这些条目之后的英文说明在联机帮助中搜索到相关内容。

五、本教程不涉及Visual SourceSafe图形用户界面操作的解释说明,对指定功能的具体操作步骤请查看联机帮助的相关部分。可以通过列于该功能之后的英文说明在联机帮助中搜索到相关内容。

六、在其他Visual Studio产品中(例如:Visual C++)可以集成Visual SourceSafe的功能,本教程不涉及有关在其他集成开发环境下如何使用Visual SourceSafe功能的内容,这部分内容主要针对普通用户。对这些内容的了解,在阅读完本教程之后,将会变得容易。此外,某些操作在Visual SourceSafe环境下使用更为方便。



  Visual SourceSafe(以下简称VSS)是一种版本控制管理工具。它通过将各种类型的文件(包括:文本文件、图像文件、二进制文件、声音文件、视频文件等)存入其内部数据库的方式,帮助你有效地管理工程(Project,关于VSS中工程的概念请见下面)。它允许你在多个工程间共享同一组文件;你可以将一个文件添加到数据库中,以便其他相关人员使用;任何对文件的更改将被记录下来,以便在任何时候可以恢复到该文件的某个旧版本。

  VSS的工程组织方式使团队协作开发变得更为容易和直观。一个工程是一组存放于VSS数据库内的任意类型的文件,一个工程类似于操作系统中的目录,但VSS为其提供了版本控制、历史记录、文件合并等更多的功能支持。



3.1 维护用户列表(Maintain the User List)

3.1.1 添加用户(Add a User)

  此处略,详细内容请查阅联机帮助。

3.1.2 更改密码(Change Passwords)

  此处略,详细内容请查阅联机帮助。

3.1.3 创建用户列表(Create a User List)

  此处略,详细内容请查阅联机帮助。

3.1.4 删除用户(Delete a User)

  此处略,详细内容请查阅联机帮助。

3.1.5 编辑用户属性(Edit User Attributes)

  此处略,详细内容请查阅联机帮助。

3.2 管理数据库(Manage the Database)

3.2.1 分析数据目录(Analyze the Data Folder)*
建议你定期备份完整的VSS数据目录(参见数据库打包)。VSS数据目录中包含有全部工程和文件的数据库信息。由于网络或操作系统的某些故障,VSS中的文件可能存在错误和不一致问题,Analyze VSS DB工具被用来查找和修复这些问题。在运行该工具前,需要锁定(Lock)所有用户并要求他们退出VSS,用户可以在一个数据库被锁定时保持文件的签出状态(参见锁定数据库)。建议分两次运行Analyze VSS DB工具,第一次修复错误,第二次核查是否仍然存在没有被修复的错误。数据目录的具体位置是由Data_Path初始化变量在SRCSAFE.INI文件中指定的(参见定制SS.INI和SRCSAFE.INI文件)。

3.2.2 数据库打包(Archive Databases)*

  你可能需要定期地备份VSS数据库,或者数据库的某一部分。VSS Administrator工具提供了此项功能。它可以:

节省VSS数据库服务器的磁盘空间。
加快显示历史记录操作(Show History)的速度。
便于在多个VSS数据库间传递文件和工程,保持历史记录完整无缺。
备份全部或部分VSS数据库内容并压缩成文件。

3.2.3 清除临时目录(Clean Temporary Folder)

  VSS通常在运行时把临时结果放在临时目录里,并在退出前将之删除。由于某些原因,例如非正常重启,可能导致临时内容残留在目录中。作为管理员,你有责任定期清除临时目录的内容。每隔几周一次,当没有任何用户运行VSS或VSS Administrator时,请清除临时目录的内容。临时目录的具体位置是由Temp_Path初始化变量在SRCSAFE.INI文件中指定的(参见定制SS.INI和SRCSAFE.INI文件)。

3.2.4 锁定数据库(Lock a Database)

  数据库锁定功能将不会自动锁定那些当前已经登录的用户,你应该在锁定数据库之前要求登录用户退出VSS。在重新允许用户使用VSS之前,需要解除对数据库的锁定。


3.2.5 数据库恢复(Restore Databases)

  此处略,详细内容请查阅联机帮助。

3.2.6 使用多个数据库(Work with Multiple Databases)*

  缺省时,VSS将所有文件集中放在一个数据库中。如果可能,应尽量使用一个数据库存放所有文件,这比分多个数据库存放要好,因为:
你不能在多个数据库间共享(Share)文件(参见对文件和工程的Branch/Share操作)。
将位于多个数据库中的内容集中在一起是比较困难的,需要使用VSS Administrator的Archive功能(参见数据库打包)。
出于安全的考虑,VSS的用户信息,包括密码在内,是和数据一起存放的。
如果为了安全起见,要将信息拆分成多个[屏蔽]的数据库,

  缺省时,VSS将所有文件集中放在一个数据库中。如果可能,应尽量使用一个数据库存放所有文件,这比分多个数据库存放要好,因为:你不能在多个数据库间共享(Share)文件(参见对文件和工程的Branch/Share操作)。
将位于多个数据库中的内容集中在一起是比较困难的,需要使用VSS Administrator的Archive功能(参见数据库打包)。
出于安全的考虑,VSS的用户信息,包括密码在内,是和数据一起存放的。如果为了安全起见,要将信息拆分成多个[屏蔽]的数据库,这种信息存储方式将带来极大的便利,但你必须为每个数据库都单独添加用户。


3.3 有关权限的话题(About Rights)

3.3.1 权限的传递(Rights Propagation)

  当你添加了一个新用户,并为该用户设置了针对某个工程的权限时,将在VSS数据库中建立起一个assignment。该assignment将会沿着工程树向下传递直至遇到另一个assignment。

  例如:针对工程"$/" ,你为用户A指定了Add权限(参见安全访问权限),而对于工程"$/Sample",你没有为用户显式指定权限,则该用户将对工程"$/Sample"自动拥有Add权限。当你在工程"$/Sample/BusinessObject"处为其指定了Read权限后,将阻止早先assignment的向下传递过程,所以用户A对该工程(指"$/Sample/BusinessObject")及其子工程都只具有Read权限了。

  当你首次添加一个用户时,该用户在工程"$/"处被赋予的权限由"缺省权限"决定,缺省权限是通过在VSS Administrator里设置Project Security属性页的内容来定义的。你可以通过修改该页内容,全局性地变更所有用户的缺省权限。

3.3.2 安全访问权限(Security Access Rights)

3.3.2.1 缺省安全设置

  当安装VSS后,缺省安全设置将被启用。你可以利用定制的方式,使某些用户拥有对某些工程和某些VSS命令的特定权限。

  缺省安全设置很简单,当添加新用户时,你只有两种级别的访问权限可供选择:

只读权限(Read-only rights):用户可以查看VSS中的任何内容,但不能更改。
可读写权限(Read/write rights):用户可以查看和修改VSS中的任何内容。

  如果这样的访问权限级别足以应对日常使用,那么就无需再增强安全控制的级别了。

  所有的VSS安全管理都在VSS Administrator中进行。任何能运行该程序的用户都可以改变VSS的任意特性,所以最好只有管理员才使用该程序。

3.3.2.2 更高级别的安全控制

  在VSS中,对工程的安全性控制,是通过制定用户访问权限来实现的。每个工程仅能被那些具有相应权限的用户访问到,每个命令仅能被那些具有相应权限的用户使用。可以通过VSS Administrator来定制权限,以达到更高级别的安全控制。

  以下是VSS的权限级别列表,下列每种权限都拥有该权限之前的全部权限。例如:拥有Check Out权限的用户,也将同时拥有Read权限。(参见附录A2:VSS中部分命令的对应权限级别)

权限 描述
Read (R) 类似于缺省安全设置中的只读权限
Check Out (C) 可以使用Check Out/Check In/Undo Check Out等命令对文件进行修改
Add (A) 可以使用Add/Delete/Label/Rename等命令对文件进行修改
Destroy(D) 可以使用Destroy/Purge/Rollback等命令对文件实施永久删除操作


4 普通用户部分

4.1 对工程、文件的一般性使用(Normal Use about Projects and Files)4.1.1 打开/关闭数据库(Open/Close a Database)4.1.2 创建新工程(Create New Projects)4.1.3 添加文件、目录、工程(Add Files,Folders,and Projects)4.1.4 删除和恢复文件、工程(Delete and Recover Files and Projects)对文件和工程的Branch/Share操作)。



  此处略,详细内容请查阅联机帮助。



  此处略,详细内容请查阅联机帮助。



  此处略,详细内容请查阅联机帮助。



  VSS提供了3种删除文件的方法:

Delete:VSS只把指定文件从当前工程中删除,而在VSS数据库中仍留有该文件的记录。此外,其他共享了该文件的工程仍保留此文件(参见
Destroy:VSS将把指定文件从VSS数据库中彻底删除,其后将无法恢复。
Purge:永久性删除已被Delete掉的文件,其后将无法恢复。


  对于共享文件,Delete和Destroy仅将文件从当前所选工程中删除掉,其他共享了该文件的工程,以及VSS数据库中,仍留有此文件。

4.1.5 移动文件和工程(Move Files and Projects)对文件和工程的Branch/Share操作),然后将原有工程(original project)下的该文件Delete或者Destroy(参见删除和恢复文件、工程)。移动后,文件的历史记录将被保留。

  移动一个文件的唯一方法是,在文件新所在位置的上一级工程(parent project)处使该文件共享(参见

  通过使用Move命令,你可以将一个子工程(subproject)从某个上级工程重置到另一个工程下。该操作不会改变子工程的内容和历史记录,但它会影响上级工程的历史记录(包括子工程所在的原有上级工程和新的上级工程)。当移动一个工程后,你将无法重建原有上级工程的某个旧版本。

4.1.6 重命名文件、工程(Rename Files or Projects)对文件和工程的Branch/Share操作)。

  若某个文件被多个工程所共享,对该文件的重命名将影响所有工程,而在Branch状态下,则不影响(参见

4.1.7 设置工作目录(Set Working Folders)4.2 签入、签出、获取、查看及相关操作(Check In/Out、Get、View and Other Related Use)4.2.1 签入签出操作(Check In and Check Out Files)4.2.2 撤销签出(Undo Check Out)4.2.3 获取最近版本(Get Latest Version)4.2.4 获取早期版本(Get Earlier Version)4.2.5 获取和查看文件、工程(Get and View Files and Projects)4.2.6 回滚到以前版本(Rollback to Previous Versions)对文件和工程的Branch/Share操作)。建议你使用虚拟回滚(Virtual Rollback),它将不会使随后的改动永久丢失。具体操作如下:

  此处略,详细内容请查阅联机帮助。





  此处略,详细内容请查阅联机帮助。



  执行该操作时,若用户选择了替换本地文件,则用户将丢失最近一次签出后对该文件在本地的更改。



  此处略,详细内容请查阅联机帮助。



  此处略,详细内容请查阅联机帮助。



  Get操作将文件或工程拷贝至本地的工作目录,并设置为read-only属性。可以用View操作查看文件内容,此时用户无需设置工作目录。

  尽量不要删除vssver.scc文件。本地工作目录及每个子目录下都包含一个这样的文件,VSS利用其中记录的信息确定本地目录中哪个文件已经更改了。删除后,将使新一次的Get操作速度减慢。



  该操作将使文件的内容恢复到先前某个版本时的状态,它将使所有在该版本后所做的改动丢失。如果你所回滚的文件被多个工程共享,则操作只影响你所指定的那个工程,并且它会自动实行Branch操作(参见

选择你要回滚的文件并签出
使用Get命令获取某个原有版本到本地
签入该文件


4.2.7 多人同时签出一个文件(Check Out Multiple Files)*合并)

  缺省状态下,一个文件只允许一个人签出,管理员可以通过修改配置,允许多人同时签出。此时,VSS将跟踪所有签出该文件的用户。每当用户签入时,VSS都将和当前存于数据库内的最新版本进行比较,若用户修改的是同一文件的不同处,VSS将进行简单的合并(Merge),否则提示用户,并且不允许签入。用户可以通过VSS提供的Visual Merge工具,比较存放于VSS数据库中的文件和本地文件的异同,手工修改本地文件,直到认为已经可以签入时,方才执行最终签入操作。(参见

4.2.8 合并(Merge)*多人同时签出一个文件)。

  在VSS中,合并可能发生在3种场合下:使用Multiple Checkout的工作方式;合并原先已经Branch了的文件;获取(Get)文件。

Multiple Checkout:若多个用户同时签出一个文件,第一个用户只要简单的签入就可以了。后续用户也可以签入,但他们的更改将需要和其他所有用户的更改合并,VSS将得到完整的更改内容(参见
Branch:当被Branch的文件合并到其中一个分支时,VSS将会把在另一个分支上所做的改动合并到该分支上(参见对文件和工程的Branch/Share操作)。
Merge on Get:在Multiple Checkout工作方式下,当使用Get Latest Version操作时可能引发合并操作,此时保存在VSS数据库中的内容将合并到本地文件。但如果某个文件是排他性签出的,则不会引发合并操作(参见排他性签出)。


  在完成一个合并之后,VSS遵循如下规则:

如果仍有冲突,VSS维持文件的签出状态,为了使文件能顺利签入,你必须排除这些冲突。
如果你使用Merge Branches命令,将一个文件合并到一个工程中,而该工程中的对应文件已被签出,该文件将继续保持签出状态(参见对文件和工程的Branch/Share操作)。
在任何其他时候,VSS将会提示你,或者在合并后自动签入,或者保持文件的签出状态以使你在更新VSS数据库中内容之前再核查一边。


  缺省情况下,当发生冲突时,VSS将启用其Visual Merge工具。

4.2.9 排他性签出(Exclusive Check Out)*4.2.10 对工程的Cloak操作(Cloak Projects)*4.3 Branch、Share、Label和Pin操作(Branch、Share、Label and Pin)4.3.1 对文件和工程的Branch/Share操作(Branch and Share Files and Projects)*给文件、工程指定标签),利用Share功能创建过渡版本(工程路径为$/Application2.1),此时两个工程中的文件是共享的,且$/Application2.1中的所有文件都处于Pin状态(参见 Pin操作),即:在向3.0升级的过程中,对$/Application中相关文件的更改,将不影响$/Application2.1下的内容,但此时文件仍是共享的。仅对需要修改bug的文件采取Branch操作。这样做的好处是,中间版本的bug修改工作和3.0的升级工作可以同时进行,并且最大限度的降低了所需的存储空间。

  允许多人同时签出一个文件是针对整个VSS数据库而言的,但用户仍可以根据实际情况,针对某些文件修改该规则。对某个文件实施排他性签出,则其他用户将无法签出该文件,直至该用户使用了签入操作。



  若对某工程实行了Cloak操作,则当对该工程的上一级工程进行Get/Check In/Check Out/Undo Check Out/Project Difference操作时,将不会影响该工程及其子工程。而在该工程上进行类似操作时,则和平常得到的结果一样。这一属性将传递给其下的子工程。

  例如:某个工程其路径为$/Application,下面有三个子工程:$/Application/Code,$/Application/Test,$/Application/Docs,而Docs工程下的内容可能对你没有任何用处。当你每次从$/Application处进行Get操作后,都需要从本地删除多余的Docs目录。此时可以对Docs进行Cloak操作。这样,每次的Get操作将只把Code和Test下的内容放到本地。如果你需要获取Docs工程下的内容,则可以单独从Docs处进行Get操作。





  在VSS中,通过Share操作,一个文件可以被多个工程共享,在任何一个工程中对该文件的更改,都将反映到其他相关工程里。

  Branch操作则消除这种共享,每次将一个被共享的文件拆成两个分支,在不同工程中分别跟踪该文件。通过查看文件属性的Links属性页可以了解该文件被哪些工程共享,通过查看Paths属性页可以了解文件的分支状况。

  例如:产品目前的正式版本为2.0(工程路径为$/Application),在加入新功能后将升级为3.0。但在开始升级的过程中,其间的一个过渡版本2.1存在bug,需要修改。此时可以进行如下操作:选择被Label标识为2.0的那个版本(参见

4.3.2 给文件、工程指定标签(Label Files and Projects)*同时维护一个工程的多个版本

  VSS使用3种方式跟踪文件的历史记录:内部版本号,日期,用户自定义标签。

  标签可以是一个不超过31个字符长度的串,例如:"1.0"、"2.01b"、"Final Beta"、"Approved for QA"。应用Label功能,用户就可以获取某个特定时期的软件内容了。所有当前工程下的文件和子工程都将继承该标签。

  注意下面几点:

当使用Label功能时,表明你在所选工程的历史记录里创建了一个新的版本,但文件和工程本身的内容并未发生变化。
对某个工程的某个标签再次使用Label操作将覆盖原来的标签内容。


  请参见附录A1:

4.3.3 Pin操作(Pin)*对文件和工程的Branch/Share操作)。


  该功能对共享文件很有用,尽管它的使用不仅限于共享文件,也包括其他任何文件。当你对一个文件实施Pin操作后,你将不能对之做任何修改。如果一个文件在Pin之后又被实施了Share操作,而被Pin的那个版本同时也是被共享的版本,则所有共享该文件的工程都不能更改该文件。如果一个文件先被实施了Share操作,而后在某个工程中被Pin了,则除了这个工程外的其余工程仍可以更改该文件(参见

4.4 其他操作(Other Use)4.4.1 扩展关键字(Expand Keywords)*4.4.2 使用Shadow目录(Work with Shadow Folders)*4.4.3 性能优化(Optimize Performance)*使用Shadow目录)



  VSS可以将某些指定信息(例如:VSS内部版本号)直接插入文本文件中。用户只要将某些关键字放入文件的注释中,每次添加(Add)或签入(Check In)文件时,VSS都会自动查找这些关键字,并将相关信息置于其后。

  VSS中常用的关键字: 关键字 描述
$Archive: $ 文件在VSS中的路径名
$Author: $ 最近一次更改文件的用户
$Date: $ 最近一次签入的时间
$History: $ 文件的历史记录
$Revision: $ VSS内部版本号
$NoKeywords: $ 使VSS对其后的所有关键字不进行扩展


  例如:

  在某文件中加入如下一行:

  $Revision: $

  若当前该文件在VSS内部的版本号是22,则签入后VSS会将之修改为:

  $Revision: 23 $



  Shadow目录位于服务器端,包含了工程中所有的文件。这些文件既非位于VSS数据库中的master copy,亦非位于本地工作目录的local copy,而是最近一次签入的所有内容。Shadow目录应该由管理员来设置。

  是否使用Shadow目录功能是可选的,通常在如下两种情况下可以考虑使用该功能:

为使某些用户能查看文件(但不能更改),这些用户可能没有对VSS的访问权限。
不让你的本地工作目录保留可编译的软件副本。为使每个用户都能得到一个最新版本的软件,所有用户可能希望在某个目录下集中进行编译,而非在各自的工作目录下编译。在这种情况下,Shadow目录功能通常和添加(Add)、签入(Check In)之后的Remove Local Copy结合使用。


  Shadow目录不会跟踪子工程的变化,例如:你有一个被Shadow的工程$/A,包含两个子工程:$/A/1和$/A/2,而你又将$/A/2重命名为$/A/B,这种变化将不会被反映到Shadow目录中。你可以手工修改,或者利用Reconcile All功能,使之保持同步。



  有两种方法可以改善VSS的性能:尽可能多的将内容通过网络拷贝至本地来做;修改初始化文件对VSS的性能进行微调。

  具体优化措施:

在SS.INI或SRCSAFE.INI文件中设置如下变量:
Diff_Ignore (PC) = c-e-s-w-

使VSS在进行文件比较时忽略end-of-line标记,从而加快运行效率

CP_OnSelection = No

在使用VSS Explorer时,缺省状态下,用户使用鼠标单击或使用键盘的方向键在工程列表上移动时,就会选中工程。设为No后,只有双击鼠标或按回车键才会选中。

设置临时目录
缺省情况下,VSS将临时文件存于服务器端,但管理员可以通过修改SS.INI中的Temp_Path变量,将临时路径设置在本地。

让管理员在SRCSAFE.INI文件中将Lock_Mode变量设置为Native
这是SRCSAFE.INI中该变量的缺省设置,把该变量设置为Native将使几乎所有的VSS操作都得到加速。该变量只能由管理员来设置。

管理员通过Disable下面的功能,也可以一定程度地改善性能:
Shadow folders(参见
Journal files
Project security system(参见安全访问权限)
Keyword expansion(参见扩展关键字)


4.4.4 查找文件(Search for Files)4.4.5 设置密码(Set Passwords)4.4.6 编写批处理文件(Writing Batch Files)*4.4.7 定制SS.INI和SRCSAFE.INI文件(Customize the SS.INI and SRCSAFE.INI Files)附录  同时维护一个工程的多个版本(Maintain Multiple Versions of a Project)


  VSS Explore的list view缺省时只显示当前工程中的所有文件。通过使用Search命令,可以只显示符合指定要求的文件。例如:只显示.h文件,只现实被签出的文件。Search命令是允许递归的。



  如果VSS管理员指定域账号为VSS登录账号,则用户登录VSS时将不会提示输入密码。



  在编写批处理文件时,一些在命令行方式下使用的交互手段需要改变。



屏蔽输入(Disable Input)
如果你的批处理文件中包含了一系列VSS命令(它们可能需要整夜运行),你一定不希望程序执行期间会停下来提示用户输入信息。有3个命令行选项可以解决此类问题。

缺省时,VSS在执行诸如添加(Add)、签入(Check In)等操作时会提示你输入注释(Comment),利用-c选项可以避免该类提示: 命令 描述
-c- 不添加注释
"-cHello" 使
本帖最近评分记录:
  • 浮云:10(tj.g) 感谢分享。一直都用VSS,这几天项目用CVS,把我弄疯了
  • 浮云:5(est) 优秀转贴
  • hello,world
    顶端 Posted: 2007-08-05 10:54 | [楼 主]
    我来我网·5come5 Forum » 程序员之家

    Total 0.012059(s) query 4, Time now is:11-23 08:47, Gzip enabled
    Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号