Visual SourceSafe 教程(转)
上一篇 / 下一篇 2007-03-21 10:49:14 / 个人分类:study
{!ZQI9Q(m't0 对于Branch/Share/Pin/Label这几项功能的融合使用,正文及附录的相关部分提供了相当不错的范例,演示了如何通过灵活运用诸项功能,以自如应对不同的开发场景。笔者在看到这部分内容时,一时间有了恍然大悟之感,心中不禁想到,原来VSS也可以如此用法。相信这些范例对大家也会有不小的启示和“震撼”的。
p)[_;t0zsu0 此外,附录部分的“VSS命令-权限级别对应表”是笔者整理之后的结果,有了它,大家对不同权限的用户可以使用何种功能,自会变得一目了然。
/d9L`s1AD0 希望这个教程可以对并不十分熟悉VSS的开发人员和管理人员有所帮助,同时也希望可以借此机会澄清一下大家对VSS的一些“偏见”:)
51Testing软件测试网Lj3R8z{(G)@
点击此处查看《Visual SourceSafe简明培训教程》51Testing软件测试网`u,|2hlW6a S
51Testing软件测试网#R;Bl#e
d*|X|f;tkn 目录 y4_Q$o;w \01 说明51Testing软件测试网?bv7C3z1TfTJeLM$z"N02 概述51Testing软件测试网"R1g K,qJ)^ }8|$yN5Gv JJ"`7|(b03 管理员部分4 普通用户部分附录 |
J!lwo@0
4dIW+V?%q0下表中打星号表示具有该类权限的用户可以使用该命令。
功能 | 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 | * | * | * | * |
%x%lCq)f\0p$c0[1] 此处指用户必须有对Parent Project的A类权限。
{KZz$Wz0[2] 此处指用户必须有对目的Project的C类权限,同时有对原Project的R类权限。
y8uS(BMp_2[*Y
\0[3] 此处指用户必须有对目的Parent Project的A类权限,同时有对原Parent Project的D类权限。51Testing软件测试网L`rXlM!E
[4] 此处指用户必须有对原Project的C类权限,同时有对目的Project的A类权限。51Testing软件测试网)M+J;HEpb
51Testing软件测试网5\VI)cI:l'j?Y*c:B
O
1 说明
R}(vd4@)V o0一、本教程针对不同使用对象提供Visual SourceSafe 6.0的若干使用指导,阅读对象包括Visual SourceSafe的管理员和普通用户,以及希望了解如何采用Visual SourceSafe进行软件版本控制的管理人员。管理员或普通用户在使用Visual SourceSafe的过程中,如果遇到不知如何操作,或者对某些操作的注意事项不甚了解等类似情况时,可以查阅本教程。51Testing软件测试网Yr7LB_uWfix
51Testing软件测试网6D:XF"L9Ccj3qp二、本教程的"管理员部分"是管理员必读的,如果管理员在除履行其自身职责之外,还兼任普通用户的角色,则可以参阅教程中的"普通用户部分"。作为一般的普通用户,只需阅读"普通用户部分"即可。
|3\]N0t9UAY00C'}F h+b"DSsn0三、教程中列举的操作,加星号者,为高级用法(Advanced Usage),其余为基本用法(Basic Usage)。所谓基本用法是指一些通常使用频繁的,或者是使用方法较为简单的操作。所谓高级用法是指通常使用频率不多,或者较为重要的,或者用法复杂的操作。51Testing软件测试网'xb'`1BP|;}
51Testing软件测试网1i{+w$H)H(b]四、本教程内容摘选并改编自Visual SourceSafe 6.0英文版联机帮助,从中提取了诸多重要信息、容易忽略的内容以及若干注意事项。一些基本内容(主要指某些基本操作的使用方法)只简单列举了条目,欲了解这些条目的详细情况请查看联机帮助的相关部分,可以通过列于这些条目之后的英文说明在联机帮助中搜索到相关内容。
)Jy*uO#LZB},@2a08z]2o8p:v'U)JC*fZ0五、本教程不涉及Visual SourceSafe图形用户界面操作的解释说明,对指定功能的具体操作步骤请查看联机帮助的相关部分。可以通过列于该功能之后的英文说明在联机帮助中搜索到相关内容。51Testing软件测试网 dH,F@ sh K
'_+E x7l3voq:uA"W0六、在其他Visual Studio产品中(例如:Visual C++)可以集成Visual SourceSafe的功能,本教程不涉及有关在其他集成开发环境下如何使用Visual SourceSafe功能的内容,这部分内容主要针对普通用户。对这些内容的了解,在阅读完本教程之后,将会变得容易。此外,某些操作在Visual SourceSafe环境下使用更为方便。51Testing软件测试网9f+jc'|7Jj
h%x3m$e8T*R r+c"@2J051Testing软件测试网"Ensqxr$SaVisual SourceSafe(以下简称VSS)是一种版本控制管理工具。它通过将各种类型的文件(包括:文本文件、图像文件、二进制文件、声音文件、视频文件等)存入其内部数据库的方式,帮助你有效地管理工程(Project,关于VSS中工程的概念请见下面)。它允许你在多个工程间共享同一组文件;你可以将一个文件添加到数据库中,以便其他相关人员使用;任何对文件的更改将被记录下来,以便在任何时候可以恢复到该文件的某个旧版本。51Testing软件测试网u,NH T2@F5Za9?i
51Testing软件测试网9gm#v;?1d Z0O*^3iVSS的工程组织方式使团队协作开发变得更为容易和直观。一个工程是一组存放于VSS数据库内的任意类型的文件,一个工程类似于操作系统中的目录,但VSS为其提供了版本控制、历史记录、文件合并等更多的功能支持。
1b3R(jQ1z9N:S:}03 管理员部分
-GTY+h&WO d@03.1 维护用户列表(Maintain the User List)
Kg;k)[9E-K6tK\z03.1.1 添加用户(Add a User)
&pc)S*m r+^ PNV){)t0此处略,详细内容请查阅联机帮助。
1I{/G7t-l7M7V'u03.1.2 更改密码(Change Passwords)
*oJ3o t#@Hv@)]s0此处略,详细内容请查阅联机帮助。
bL#AT\y03.1.3 创建用户列表(Create a User List)
qta7_H'd:w3U4}'Zt0此处略,详细内容请查阅联机帮助。
:]*{ mw*Gzl03.1.4 删除用户(Delete a User)
z%{"@'D?0此处略,详细内容请查阅联机帮助。51Testing软件测试网{S.y[fv_j m
3.1.5 编辑用户属性(Edit User Attributes)51Testing软件测试网w8n+\*p,P({-k
此处略,详细内容请查阅联机帮助。51Testing软件测试网8FdJe WM$Z(S2?
3.2 管理数据库(Manage the Database)51Testing软件测试网)v&Kqe*d
3.2.1 分析数据目录(Analyze the Data Folder)*
;QUj `?d,nr0建议你定期备份完整的VSS数据目录(参见数据库打包)。VSS数据目录中包含有全部工程和文件的数据库信息。由于网络或操作系统的某些故障,VSS中的文件可能存在错误和不一致问题,Analyze VSS DB工具被用来查找和修复这些问题。在运行该工具前,需要锁定(Lock)所有用户并要求他们退出VSS,用户可以在一个数据库被锁定时保持文件的签出状态(参见锁定数据库)。建议分两次运行Analyze VSS DB工具,第一次修复错误,第二次核查是否仍然存在没有被修复的错误。数据目录的具体位置是由Data_Path初始化变量在SRCSAFE.INI文件中指定的(参见定制SS.INI和SRCSAFE.INI文件)。
3.2.2 数据库打包(Archive Databases)*51Testing软件测试网X4O-@%m/`J
你可能需要定期地备份VSS数据库,或者数据库的某一部分。VSS Administrator工具提供了此项功能。它可以:51Testing软件测试网j'B ?d} qfC5DP|
节省VSS数据库服务器的磁盘空间。51Testing软件测试网Xo%^%D,c
加快显示历史记录操作(Show History)的速度。51Testing软件测试网6rEC?0O7@&^;GV
便于在多个VSS数据库间传递文件和工程,保持历史记录完整无缺。51Testing软件测试网 Rp9[6\7~g,W N'jx
备份全部或部分VSS数据库内容并压缩成文件。51Testing软件测试网)d!j3n&]%b;@
~*yR1bY5f1]H"W@]5v2g [03.2.3 清除临时目录(Clean Temporary Folder)51Testing软件测试网$BI@pF
Y!i
VSS通常在运行时把临时结果放在临时目录里,并在退出前将之删除。由于某些原因,例如非正常重启,可能导致临时内容残留在目录中。作为管理员,你有责任定期清除临时目录的内容。每隔几周一次,当没有任何用户运行VSS或VSS Administrator时,请清除临时目录的内容。临时目录的具体位置是由Temp_Path初始化变量在SRCSAFE.INI文件中指定的(参见定制SS.INI和SRCSAFE.INI文件)。51Testing软件测试网?M HH qJM
3.2.4 锁定数据库(Lock a Database)
m-BeD&M\2F {0 数据库锁定功能将不会自动锁定那些当前已经登录的用户,你应该在锁定数据库之前要求登录用户退出VSS。在重新允许用户使用VSS之前,需要解除对数据库的锁定。51Testing软件测试网;dWZ1h&]m
3p
PWbPg-F(p0
C@Q-E Xw03.2.5 数据库恢复(Restore Databases)
此处略,详细内容请查阅联机帮助。
(mg+NtTQ%{051Testing软件测试网+^oU]6bqN }O
3.2.6 使用多个数据库(Work with Multiple Databases)*
缺省时,VSS将所有文件集中放在一个数据库中。如果可能,应尽量使用一个数据库存放所有文件,这比分多个数据库存放要好,因为:
p?"tT+t4d:c ?0你不能在多个数据库间共享(Share)文件(参见对文件和工程的Branch/Share操作)。
1p~v(VW0将位于多个数据库中的内容集中在一起是比较困难的,需要使用VSS Administrator的Archive功能(参见数据库打包)。
-l;~ ]"_#^0出于安全的考虑,VSS的用户信息,包括密码在内,是和数据一起存放的。
\"I-Z!Oi4uo#^0如果为了安全起见,要将信息拆分成多个独立的数据库,
+Ny*z4M2Cv!Ex,Mv0
2Il]R/]0 缺省时,VSS将所有文件集中放在一个数据库中。如果可能,应尽量使用一个数据库存放所有文件,这比分多个数据库存放要好,因为:你不能在多个数据库间共享(Share)文件(参见对文件和工程的Branch/Share操作)。
Gs"OzaI?0将位于多个数据库中的内容集中在一起是比较困难的,需要使用VSS Administrator的Archive功能(参见数据库打包)。51Testing软件测试网6nH)Ilk
`%u)U]
出于安全的考虑,VSS的用户信息,包括密码在内,是和数据一起存放的。如果为了安全起见,要将信息拆分成多个独立的数据库,这种信息存储方式将带来极大的便利,但你必须为每个数据库都单独添加用户。
I|7B$Wras1T8Wj_051Testing软件测试网.|1_0lwV)}C pM
"c].]F9R;vA$w7Z03.3 有关权限的话题(About Rights)
3.3.1 权限的传递(Rights Propagation)
,q^,ANv!uZM0当你添加了一个新用户,并为该用户设置了针对某个工程的权限时,将在VSS数据库中建立起一个assignment。该assignment将会沿着工程树向下传递直至遇到另一个assignment。51Testing软件测试网fV&^6\:n![3n#D
例如:针对工程"$/" ,你为用户A指定了Add权限(参见安全访问权限),而对于工程"$/Sample",你没有为用户显式指定权限,则该用户将对工程"$/Sample"自动拥有Add权限。当你在工程"$/Sample/BusinessObject"处为其指定了Read权限后,将阻止早先assignment的向下传递过程,所以用户A对该工程(指"$/Sample/BusinessObject")及其子工程都只具有Read权限了。
-O1D6wcS&L%Uq0当你首次添加一个用户时,该用户在工程"$/"处被赋予的权限由"缺省权限"决定,缺省权限是通过在VSS Administrator里设置Project Security属性页的内容来定义的。你可以通过修改该页内容,全局性地变更所有用户的缺省权限。51Testing软件测试网?3[]5Oam8O
3.3.2 安全访问权限(Security Access Rights)
#l4lT H9v6H/p3A03.3.2.1 缺省安全设置
1fJ$N"sw'F0当安装VSS后,缺省安全设置将被启用。你可以利用定制的方式,使某些用户拥有对某些工程和某些VSS命令的特定权限。
N @(VE5gZ` w0缺省安全设置很简单,当添加新用户时,你只有两种级别的访问权限可供选择:51Testing软件测试网? \Ut q+z RU
只读权限(Read-only rights):用户可以查看VSS中的任何内容,但不能更改。51Testing软件测试网uXCu@"]RE
可读写权限(Read/write rights):用户可以查看和修改VSS中的任何内容。
如果这样的访问权限级别足以应对日常使用,那么就无需再增强安全控制的级别了。
'O4s&SD&bv,a a0所有的VSS安全管理都在VSS Administrator中进行。任何能运行该程序的用户都可以改变VSS的任意特性,所以最好只有管理员才使用该程序。51Testing软件测试网3PQ&h7`I
3.3.2.2 更高级别的安全控制51Testing软件测试网$y{Q `E]h
在VSS中,对工程的安全性控制,是通过制定用户访问权限来实现的。每个工程仅能被那些具有相应权限的用户访问到,每个命令仅能被那些具有相应权限的用户使用。可以通过VSS Administrator来定制权限,以达到更高级别的安全控制。
2jyv5~d"K$PB0以下是VSS的权限级别列表,下列每种权限都拥有该权限之前的全部权限。例如:拥有Check Out权限的用户,也将同时拥有Read权限。(参见附录A2:VSS中部分命令的对应权限级别)51Testing软件测试网 B;U f v!a,dn"^
权限 描述51Testing软件测试网t#Rc E9Q,D!r yT
Read (R) 类似于缺省安全设置中的只读权限
x9x;Ho8b7X6e0Check Out (C) 可以使用Check Out/Check In/Undo Check Out等命令对文件进行修改51Testing软件测试网%mj%g)Hp$m
Add (A) 可以使用Add/Delete/Label/Rename等命令对文件进行修改51Testing软件测试网I'_&i?#l+P\
Destroy(D) 可以使用Destroy/Purge/Rollback等命令对文件实施永久删除操作
x@QG|g9x0
4 普通用户部分51Testing软件测试网uOCo~8kr
4.1 对工程、文件的一般性使用(Normal Use about Projects and Files)
#Fj6ovy M04.1.1 打开/关闭数据库(Open/Close a Database)
@B:Q D#I4M:HiC-q0\LZI I0j0 此处略,详细内容请查阅联机帮助。
Pve9qO J?2|04.1.2 创建新工程(Create New Projects)
;V1H ?O0_0*^ dF#CS0 此处略,详细内容请查阅联机帮助。
gHuzUs"kA04.1.3 添加文件、目录、工程(Add Files,Folders,and Projects)51Testing软件测试网*lY_:RMy
$dxx^}MS2T0 此处略,详细内容请查阅联机帮助。
'|:Q*@^Dl0{2ZH~04.1.4 删除和恢复文件、工程(Delete and Recover Files and Projects)
z2P-j9|LiC051Testing软件测试网 X6`6H3t9IyVSS提供了3种删除文件的方法:
- Delete:VSS只把指定文件从当前工程中删除,而在VSS数据库中仍留有该文件的记录。此外,其他共享了该文件的工程仍保留此文件(参见对文件和工程的Branch/Share操作)。
- Destroy:VSS将把指定文件从VSS数据库中彻底删除,其后将无法恢复。
- Purge:永久性删除已被Delete掉的文件,其后将无法恢复。
pbh `w_wxE0
%o-]E&J0x:`%S0y/t Gv6Y0 对于共享文件,Delete和Destroy仅将文件从当前所选工程中删除掉,其他共享了该文件的工程,以及VSS数据库中,仍留有此文件。
!P*_F0l!z0X{6pl2w04.1.5 移动文件和工程(Move Files and Projects)51Testing软件测试网F:S}$OT%E&x
K2Wc(@#p"] q0 移动一个文件的唯一方法是,在文件新所在位置的上一级工程(parent project)处使该文件共享(参见对文件和工程的Branch/Share操作),然后将原有工程(original project)下的该文件Delete或者Destroy(参见删除和恢复文件、工程)。移动后,文件的历史记录将被保留。51Testing软件测试网)[)JT6_v)e3YL
51Testing软件测试网#TR'^8}vAD1L-I通过使用Move命令,你可以将一个子工程(subproject)从某个上级工程重置到另一个工程下。该操作不会改变子工程的内容和历史记录,但它会影响上级工程的历史记录(包括子工程所在的原有上级工程和新的上级工程)。当移动一个工程后,你将无法重建原有上级工程的某个旧版本。51Testing软件测试网0p/jm(ePdzI:_