VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。

源代码版本控制机制是现代软件开发中必不可少的管理机制之一,通常借助版本控制软件即Source Code Management(SCM) systems或者Version Control systems来实现。版本控制在软件开发中的重要作用如下:

1)作为代码仓库有效的管理软件开发中各个不同版本的源代码和文档,占用空间小并且方便各个版本代码和文档的获取。

2)对开发小组中对源代码的访问进行有效的协调(不同的版本控制软件采取不同的协调策略)。

常用的版本控制软件有Clearcase, CVS, PVCS和Microsoft公司的Visual SourceSafe (VSS)。下面对Windows平台开发最常用的Visual SourceSafe 6.0进行简单介绍。

运行环境

Windows平台下使用VSS开发的典型环境是基于C/S架构的,即开发小组的每个开发者在各自的Windows平台下利用开发工具(比如VC)开发项目中的各个模块,而配有专门的服务器集中控制开发过程中的文档和代码。服务器和开发人员的客户机分别装有VSS的服务器和客户端程序。

安装

VSS6.0服务器的安装

第一步,将Visual Studio6.0的CD1放入CD-ROM,自动进入安装程序,选择第二项“Server Applications and Tools(Add Only)”;

第二步,然后在“Server Setups”的“Server Components”中选择“Visua l Source Safe Server”,按“Install”按钮后,根据提示放入CD2;

第三步,根据Installation Wizard的提示,继续安装过程,选择安装路径,直至提示你重启以使新安装的程序生效,重启计算机。

VSS6.0客户端的安装

在VSS6.0服务器安装完毕后,就可以在VSS管理员的指导下安装客户端的软件。由于我们是在一个Windows环境的子网内,每台PC客户机均可通过网上邻居来访问VSS服务器。在VSS管理员为用户指明VSS客户端软件的安装程序“Netsetup.exe”的位置(VSS服务器安装目录内)后,用户可以直接通过资源管理器“Explorer”在网上邻居中找到该程序,并双击以运行它。 Netsetup.exe被启动后进入VSS客户端的安装,在提示框中输入用户名和工作组名,选择VSS的安装路径后,点击安装图标,进入实际安装步骤,以后的工作将由系统自动完成。

使用说明

VSS使用过程中要遵循的是lock-modify-unlock流程而不是 copy-modify-merge流程(比如CVS),即开发人员首先将自己要修改源代码和文档从VSS服务器主备份文件上checkout到本地同时锁定服务器上的源代码和文档(multi - checkout情况除外),修改完成后checkout到服务器上同时解除服务器上文件的锁定。服务器集中控制所有的源程序和文档。

VSS使用中涉及到的概念

1) 项目(project),所谓的项目是一组存在VSS中的文件(任何类型),可以在项目中或是项目之间进行文件的添加、删除、编辑和共享。一个项目与操作系统的文件夹有很多的相似之处,但它更好地支持文件合并、历史和版本控制。所有的文件存在VSS数据库的项目中,开发组成员不能在VSS中的服务器主备份文件上工作(除了检查和版本比对等特殊情况外)而是VSS为每个成员在各自的工作目录(workfolder)下提供一个拷贝以供工作。尽管在没有工作目录的情况下也可以查看某个文件,但如要真正在VSS管理下工作,就必须要创建一个工作目录。

2) 工作目录(workfolder)是用户真正对项目文件进行调试修改的地方,当用户checkout文件时,VSS将就将文件拷贝到用户的工作目录下,当用户修改了该文件并将其checkin时,VSS再将它从用户的工作目录拷回到VSS 的数据库中。在用户作checkout时,VSS将会自动管理他的工作目录,诸如创建必要的子目录。而且工作目录可以随时创建或修改。

3) 版本跟踪。VSS提供版本控制和历史服务,而且老版本程序和文档能够被重新得到以便进行bug跟踪或其他目的。VSS用日期/时间戳来记录文件是何时被checkout或是何时被修改的,它主要有三种方法来跟踪文件和项目的版本:

版本号:这是由VSS维护的内部数码,用户对它没有控制权。每个文件和项目的每个版本都有一个版本号,这些版本号总是一个整数且是递增的。

标签(label):这些是用户赋给某个项目或文件的某个版本的一个字符串,可以是任何格式的长度不超过31字符的字符串。推荐使用。

日期/时间戳:它给出了一个文件何时最后被修改的信息,或者是一个文件何时被checkin。VSS同时支持 12小时和24小时的时间格式。

VSS6.0服务器的配置和管理

在VSS6.0服务器安装完毕后,就可以针对开发项目进行VSS服务器的配置和管理,这些工作均需由VSS管理员来完成。

第一步,为整个项目创建一个VSS数据库(在VSS服务器安装时,系统已经创建了一个缺省数据库Common),启动Visual SourceSafe6.0 Admin(Start/Programs/Microsoft Visual Studio6.0/Microsoft Visual SourceSafe/Visual Sou rceSafe6.0 Admin),跳出对话窗口,点击下拉菜单Tools中的Create Database ...菜单项,将出现对话窗口,选择新数据库的路径,例如创建MyApp数据库,然后点击OK按钮,系统将完成创建工作。

第二步,为新创建的数据库(例如MyApp)建立用户,首先需要打开该数据库,点击下拉菜单Users/Open SourceSafe Database...,然后选择数据库MyApp并打开。再选择菜单项Add User...,输入用户名和口令。然后依次创建其他的用户。可以为不同的用户设置针对不同项目文件夹的不同存取权限,存在两种方法:1)使用VSS提供的功能。选中Tools/Options…对话框中Porject Security属性页的Enable Project Security复选框并选择Tools/Rights by Project…或者Tools/Rights Assignments for User…进行设置;2)使用windows操作系统的cacls命令。

第三步,在该新建的数据库中创建项目Project。启动Microsoft Visual SourceSafe6.0(Start/Programs/Microsoft Visual Studio6.0/Microsoft Visual SourceSafe/Microsoft Visual SourceSafe6.0),出现对话窗口,点击下拉菜单File中Open SourceSafe Database...,跳出对话框,选择一个数据库(例如MyApp),双击它或按Open按钮打开该数据库;一个项目Project是一组相关的文档或者是一个文件的集合,VSS允许你以任何的层次结构来存贮和组织你的项目。在VSS数据库中,你可以创建一个或者多个项目。点击菜单File中的命令Create Project...,创建一个项目,例如MyProject;创建完项目MyProject后,需要向MyProject中添加文件,点击File中Add Files命令,将跳出对话框,选择相应文件或目录,点击Add按钮,将它们添加到MyProject中去。

至此VSS服务器的配置到此基本上已经完成了,创建了数据库和项目,并为它们建立了相应的用户,这样用户在客户端就可以直接登录到VSS服务器上,进行在VSS控制管理下的开发工作。

注意:关于服务器主备份文件的目录结构应该在项目开发前确定并征得全体开发人员得同意。实际使用过程中,如果发生服务器主备份文件目录结构不合理或者需要临时增加删除一些文件的情况,VSS管理员有责任集中进行处理。

VSS6.0客户端的使用

下面以实验室数据仓库项目具体实例说明VSS客户端使用步骤。

第一步,登录到VSS服务器。启动Microsoft Visual SourceSafe6.0客户端(Start/Programs/Microsoft Visual Studio6.0/Microsoft Visual SourceSafe/Microsoft Visual SourceSafe6.0),出现如下登录窗口;

点击Browse…按钮,出现下面对话框;

再点击Browse…按钮,选择下图所示的目录(DBGROUP服务器上的共享目录,如提示输入DBGROUP服务器帐号密码则分别填写vss/vss);

单击打开按钮并在随后出现的两个对话框上单击OK和Open;

重新回到登录对话框;

输入管理员指定的用户名和密码,即登录到了VSS服务器上。

注意:不同得用户和密码设置对不同目录(project)有不同的访问权限。

第二步,如果是第一次登录到VSS服务器,还需要先设定工作目录,否则无法进行checkout操作。

工作目录的设定如下图所示,选中自己相关模块的文件夹,单击右键,选择Set Working Folder…;

在弹出的对话框中选择自己所设定的工作目录并单击OK;

注意:工作目录设定完成后,服务器上的文件checkout后均放到该工作目录中,所以本地机器上的工作目录应收到保护不能随意删除移动。

第三步,checkout文件到本地工作目录中。选中相关的文件夹,单击右键并选择Check Out…;

系统弹出checkout对话框如下,单击OK后该目录下所有文件和子文件夹即checkout到了本地工作目录同时服务器上的文件被锁定呈红色,其他用户不可以再checkout该文件夹(服务器设置为不允许multicheckout)。

注意:一定要选中Recursive复选框以保证所有子文件夹被checkout。

第四步,对本地工作目录当中的文件进行修改调试。

第五步,将工作目录中的文件checkin。如果不将修改后的文件checkin则第四步中对文件的修改无法反映到服务器上项目文件的主备份中,而且极有可能导致下次checkout后本地文件被旧版本文件覆盖的情况。在VSS客户端窗口中选中要checkin的文件夹单击右键选择Check in…,弹出checkin对话框,单击OK则本地工作目录中的文件checkin到了服务器上同时服务器上的文件解除锁定(变黑)。

注意:一定要选中Recursive复选框以保证所有子文件夹被checkin。

建议1

在实际使用过程中,开发人员或者管理员有责任对服务器上的源程序和文档定期或不定期的做相应Label,以方便源程序和文档历史版本的管理。VSS可以方便的根据Label获取各个历史版本(有其他获取历史版本的方式,本文推荐使用Label方法)。

添加Label。选中要添加Label的目录(project)单击右键选中Label…;

设置Label对话框中填入Label名称和相关Comment,如下图所示;

如果要获取某一历史版本,选中相应的目录(project)并选择Show History…,如下图所示选择相应复选框并单击OK;

VSS弹出下面对话框,其中列出了所有管理员所作的Label,选中相应的Label,然后单击Get按钮则做Label的相应版本就会checkout到本地工作目录中。其他按钮的使用参见帮助;

建议2

开发人员请不要随意变更VSS服务器上的目录(project)结构,不要在目录(project)中随便增加删除文件,不要随便访问他人目录(project)及文件。如服务器上目录(project)结构确实需要变化请与管理员联系。

建议3

严格遵守VSS的使用规程,防止因误操作导致程序或者文档的丢失。如遇两人需同时修改统一目录(project)或文件的情况,请串行处理而非multicheckout方式处理以减少出错几率。

****************************************************************

VSS的每日自动备份

小弟在项目中兼职担当配置管理员,备份VSS的重任当然也得我来扛着,不然兄弟们加班加点的劳动果实可能因为什么天灾人祸一不小心就挂了。

以往备份VSS的频率是一月一次,近来受到上面的教导,备份频率较少,需要每日备份。难道小弟我需要每日坚持到加班的最后一刻,然后再全部get最新,再压缩文件,再传到服务器上去吗?现在的项目很大了,备份一次真是费时不少。

作为一个老程序员肯定不能干这种重复的手工劳动,得想个办法,偷一下懒。网上找了一圈,codeproject.com上找到了一篇讲这个的文章。理解之后,做成了以下的bat文件:

@ECHO OFF

@TITLE Backing up source safe databases

SET VSS_Install_Path="D:\Program Files\Microsoft Visual Studio\VSS\win32\"

SET VSS_DB="\\Server\Vss_DB_Path\Vss_DB_Name"

SET Bak_File="e:\%DATE%_Backup.ssa"

SET VSS_Admin_Name="admin"

SET VSS_Admin_Password="Your Admin Password"

FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k

%VSS_Install_Path%"ssarc" -d- -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB% %Bak_File% $/

@ECHO Finished backups

文件的解释

1 在实际项目中使用的话,需要修改文件中五个参数:

VSS_Install_Path :VSS的安装路径

VSS_DB :需要备份的VSS DB的路径

Bak_File :备份文件的输出地址

VSS_Admin_Name :VSS DB管理员的用户名

VSS_Admin_Password :VSS DB管理员的密码

2 “FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k”

设置一个获取当前日期的变量,用于每日备份的文件名

3 “%VSS_Install_Path%"ssarc" -d- -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB% %Bak_File% $/”

BAT文件的核心:使用了VSS安装路径下的 ssarc.exe 这个实用的工具来备份指定的VSS DB.

每日工作的配置

1 进入备份服务器

2 开始——程序——附件——系统工具——任务计划——添加任务计划

3 选择保存的我们做成的VSS备份的bat文件,设置执行频率为“每日”,时间可设置为凌晨1、2点钟,那时大家应该都下班了吧。

4 OK!大功告成,不用管备份的事情了。不过一定得把备份服务器的硬盘弄大一点,项目大了的话,备份文件还是挺大的,小心撑爆硬盘,过了保质期后,可以手动废掉一些过期的备份文件。

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

vss备份,使用批处理,每次只能备份当前打开的项目,怎么才能备份所有的项目呢

批处理如下(已调试通过):

@echo off

@title 备份ProjectVss项目组SourceSafe数据库
rem SsPath 指定了SourceSafe安装目录下的 win32 目录的路径
set SsPath = "E:\Program Files\Microsoft Visual SourceSafe\"
rem BakPath指定了备份文件存放的路径
set BakPath ="J:\vssbak\"
rem iniPath指定了Vss安装时的Data路径
set iniPath ="E:\vssmanage\"
rem 备份日志
SET baklog="J:\vssbak\ProjectVSS_Bak(%DATE%).txt"
rem 备份文件名
SET bakfile="J:\vssbak\ProjectVSS_Bak(%DATE%).ssa"
rem vss管理员用户名
SET VSS_Admin_Name="admin"
rem vss管理员密码
SET VSS_Admin_Password=""

rem admin为管理员帐号,password为admin的密码
"%SsPath%ssarc.exe" -d- -s " %iniPath% " -i-Y -y%VSS_Admin_Name%,%VSS_Admin_Password% -o@"%baklog% " "%bakfile%" $/
if errorlevel 1 (
echo 备份失败
) ELSE (
echo 备份完成
)

把批处理文件设置为每日任务即可。

1。备份脚本

ECHO ====================== 开始 ========================

SET VSS_INSTALL_PATH=D:\VSS\
SET VSS_DB=E:\VSS\
SET BACKUP_FILE="e:\VSSBackup\%DATE%_%TIME%_Backup.ssa"
SET VSS_ADMIN_NAME=admin
SET VSS_ADMIN_PASSWORD=xxxx

FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k
FOR /F "tokens=1-2 delims=: " %%i IN ('time /t') DO SET TIME=%%i_%%j

%VSS_INSTALL_PATH%"ssarc.exe" -d- -i- -y%VSS_ADMIN_NAME%,%VSS_ADMIN_PASSWORD% -s%VSS_DB% %BACKUP_FILE% $/

if errorlevel 1 (
ECHO 备份失败
) else (
ECHO 备份成功
)

ECHO ====================== 结束 ========================

2。计划任务设置脚本

@ECHO OFF
@TITLE VSS自动备份任务设置

schtasks /create /RU system /SC DAILY /ST 12:00:00 /TN "VSS自动备份任务" /TR "cmd /c d:\vss\backup.bat >> d:\VSS\backup.log"

使用>>符号可以将每次备份的日志都记录到后面的日志文件中。

3。参考资料

http://blog.csdn.net/downmoon/archive/2006/08/21/1102679.aspx

VSS的每日自动备份
http://www.cnblogs.com/heekui/archive/2007/01/25/629972.aspx

让 sourceSafe 每天自动备份及修复 ( 适用于 vss6.0 和 vss2005) @ECHO OFF
@TITLE VSS自动备份

详细出处参考:http://www.itqun.net/content-detail/179811.html

VSS介绍和备份技巧相关推荐

  1. android手机通讯录备份还原代码,安卓手机误删联系人恢复及备份技巧总汇

    原标题:安卓手机误删联系人恢复及备份技巧总汇 现在很多手机都不再提供将联系人存入SIM卡中的功能了,所以如果你还习惯性的将联系人储存在手机内存当中,一旦手机丢失或者手机数据遗失,那么少则几十动辄几百的 ...

  2. WinRAR备份技巧集合

    对每一位电脑用户来说,数据的备份无疑是不可忽略的.通常我们都是简单的把重要数据复制到某个地方完事.但是当要备份的数据分布在不同的文件夹中时,简单的复制就会很麻烦.其次,也许某个文件夹中只是其中某个文件 ...

  3. 通讯录备份的方法你知道几个?分享iPhone通讯录3个备份技巧!

    案例:苹果通讯录的备份方法 [我想把 iPhone 8重置一下,把里边乱七八糟的东西清一清,软件什么的重新下了就好了,设置什么的也不需要备份,只想重置完了能恢复一下通讯录,求解答!] 在如今的移动通讯 ...

  4. 浅析VS2010反汇编 VS 反汇编方法及常用汇编指令介绍 VS2015使用技巧 调试-反汇编 查看C语言代码对应的汇编代码...

    浅析VS2010反汇编 2015年07月25日 21:53:11 阅读数:4374 第一篇 1. 如何进行反汇编 在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息.如下图所示. ...

  5. python自我介绍_面试技巧:一分钟自我介绍怎么说才精彩

    任何公司面试中都有一段短短的自我介绍,其实是为了更深进一步的面谈而设置的.一分钟的自我介绍需要将自己最美好的一面在招聘方面前毫无保留地表现出来,想要知道怎么才能给对方留下好的印象,一起来看看小编为你带 ...

  6. 转行php自我介绍,PHP面试技巧——如何进行自我介绍?

    本文摘自<PHP程序员面试笔试宝典> PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 自我介绍是面试中至关重要的一个步骤,很多面试官对求职者提出的第一 ...

  7. 面试ppt计算机自我介绍,面试中技巧及怎样自我介绍.ppt

    面试技巧与自我介绍;主要内容导航;[1]自我介绍;[2]自我介绍的内容;(3)做好自我介绍的准备.;(3)做好自我介绍的准备.;一.面试的一般程序;用人单位最关心毕业生的哪些条件如今的劳动力市场和用人 ...

  8. windows7计算机窗口介绍,windows7使用技巧详细介绍【图解】

    电脑在我们的生活中已经成为了生活中常见的一个设备了,现在人们在工作或者是学习的时候都会使用到电脑.所以说电脑也成为了很重要的一个部分.我们使用电脑的时候,电脑中间都是必须要安装系统的.Windows7 ...

  9. android手机app怎么备份,安卓手机各种数据怎么备份 安卓手机各种数据备份技巧...

    备份照片和视频 想要自动备份照片和视频,你需要依赖于第三方应用和它们的服务. Photobucket 是一款优秀的备份应用,它向用户提供了10GB的免费存储空间.如果你手机中存储的照片/视频并不多,这 ...

最新文章

  1. 再谈JSON -json定义及数据类型
  2. php采集列表xml代码,php读取xml列表程序
  3. 从Vuex的Actions中理解JavaScript的解构赋值
  4. 深入理解 Java 线程池:ThreadPoolExecutor
  5. 通用权限实现的核心设计思想
  6. TIME_WAIT状态的一些总结
  7. 《鸿蒙理论知识06》HarmonyOS概述之应用开发基础知识
  8. linux下的I2C驱动记录(RK)
  9. matlab 线性规划_从零开始的matlab学习笔记——(37)线性规划——后传
  10. Docker学习文档之三 其他相关-安全性
  11. Spring Data Jpa 不打印sql参数
  12. 【转】Android 基于Socket的聊天室
  13. Python的下载安装图文教程(超详细!!!)
  14. 《软件工具》分享2款好用的时序图工具
  15. RPM-YUM-源码
  16. PhpStorm卸载插件
  17. Visual Studio 程序集
  18. 小学计算机室行事周历,关于小学信息技术教案八篇
  19. RTX2060 Super和RTX2060 哪个好
  20. C语言直接驱动硬件实现PC机的串口操作

热门文章

  1. linux mmap内存文件映射
  2. centos下docker1.7 上传文件到容器报错 Error: Path not specified
  3. android cmd adb命令安装和删除apk应用
  4. ImageMagick convert
  5. 动态链接库dll,静态链接库lib, 导入库lib
  6. 怎么看待传菜机器人_太科幻了!这家顺德菜餐厅里全是机器人,炒菜送菜样样行...
  7. 什么是初效过滤器_初效过滤器主要用于过滤多少微米的杂质?
  8. SQL Date Utility
  9. 中随机打乱序列的函数_提前准备,方能“随机”应对,人生不悔
  10. php实现变声,PHP:用UTF-8字符串中最接近的7位ASCII等效替换变音符号