什么是VSS_vss是什么_eolanda的博客-程序员秘密

技术标签: 文档  vss  服务器  工作  microsoft  数据库  

 

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表示连接到场效应管的源极(S)的电源。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/eolanda/article/details/4275564

智能推荐

EasyBCD 修改boot启动项工具_weixin_30711917的博客-程序员秘密

EasyBCD转载于:https://www.cnblogs.com/KimSky/archive/2010/08/31/1813309.html

Python代码规范与pylint_iteye_1203的博客-程序员秘密

Pylint简介Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8)和有潜在问题的代码。参考《如何使用 Pylint 来规范 Python 代码风格》Windows 下的安装<!--[if !supportLists]-->1.<!--[end...

java项目几种常见数据库连接池的使用比较_zf900901298的博客-程序员秘密

作者曾经主持以及经历的几个产品及项目中,包括了各种数据库及应用服务器,基本上几种常见的数据库连接池都用到了,根据使用的情况把这些连接池比较一下吧。感觉在介绍之前有必要阐述一下连接池的几个概念,有助于后边一些文字的理解。最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源。由于频繁的打开和关闭连接对jvm包括数据库都有一定的资源负荷,尤其应用压力较大时资源

把TextView中的文字添加阴影效果及Style的使用_SuperStallman的博客-程序员秘密

http://blog.csdn.net/xjanker2/article/details/6364770[xhtml] view plaincopyTextView  android:id="@+id/tvText1"       android:layout_width="wrap_content"       android:layout_height="wrap_con

程序人生有用的几个网站_csdn_一味前行的博客-程序员秘密

这是高级Java开发人员最常访问的几个网站。 这些网站提供新闻,一般问题或面试问题的答案,精彩的讲座等。质量是优秀网站的关键因素,这此网站都有较高的质量内容。下面逐一介绍:1. StackoverflowStackoverflow.com可能是编程世界中最受欢迎的网站。 有数百万个好问题和答案。 学习API或编程语言通常依赖于代码示例,stackoverflow有很多代码段。stackoverfl...

虚拟机配置--共享文件夹配置_huangwy1991的博客-程序员秘密

VM虚拟机配置--共享文件夹配置环境挂载问题复制(迁移)服务器问题这边将配置虚拟机和实体机的的共享文件夹时,所遇到的问题做一记录。环境环境:实体机器Win10 64bitVmware14 pro虚拟机内安装CentOS7 64bit系统vm-tools(open-vmtools)tips:安装vm默认的vmware tools,是可能会报错可选择安装open-vmtools...

随便推点

mysql esc分隔符_concat和concat_ws()区别及MySQL的几个实用字符串函数_皮皮波的博客-程序员秘密

mysql> select concat('10');+--------------+| concat('10') |+--------------+| 10 |+--------------+1 row in set (0.00 sec)mysql> select concat('11','22','33');+------------------------+|...

排错-通过LLDP信息查找环路(以H3C S5100为例)_lldp/6/lldp_create_neighbor: nearest bridge agent _筐瓢大师小吕的博客-程序员秘密

某栋宿舍楼中有多个用户报修,现场查勘后发现室内进线接主机无法获取地址,物理线路连通。因假期期间,只有少数用户留校,不能确定是否是该栋所有用户都无法上网。

Linux 内核学习笔记_CHAO_^的博客-程序员秘密

Linux内核学习笔记《linux内核设计艺术》写的很好,对于理解操作系统的工作原理有很大帮助,以下是我在读这本书时所整理的一些框架,希望可以对读者理解linux操作系统的内核起到一定的作用,由于本人水平有限,不足之处,欢迎广大读者留言指正。1.linnux启动计算机在启动时,内存中是没有程序的,所以需要将硬盘中的操作系统加载到内存中,在内存(RAM)中什么程

MySQL:向已有数据表中插入新的一列数据_mysql插入一列数据_Yvettre的博客-程序员秘密

一、需求有两个表格,test和test2如下所示:mysql> select * from test;+------+------+------------+| data | id | timestamp |+------+------+------------+| 300 | 3 | 1536292800 || 200 | 2 | 1536292...

项目组合管理、项目集管理、项目管理和组织级项目管理之间的关系_目界面管理、大型计划管理和项目组合管理_Osborn521的博客-程序员秘密

组织级项目管理(Organizational  Project Management,OPM)。    OPM是一种战略执行框架,通过应用项目管理、项目集管理、项目组合管理及组织驱动实践,不断地以可预见的方式取得更好的绩效、更好的结果及可持续的竞争优势,从而实现组织战略。    项目组合、项目集和项目管理均需符合组织战略,或者由组织战略驱动。反之,项目组合、项目集和项目管理又以不同

XCode7打包上传报错_bit小兵的博客-程序员秘密

在XCode7上传应用时,上传失败遇到两个错误,提示如下:[html]view plaincopyERRORITMS-90535:"UnexpectedCFBundleExecutableKey.Thebundleat'xxxxx.app/TencentOpenApi_IOS_Bundle.bundle'doesnotcon...

推荐文章

热门文章

相关标签