




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VSS使用手册1 VSS概述 版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失、允许反追踪到早期版本、并能对版本进行分支、合并和管理。在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。Visual SourceSafe 是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。VSS通过将有关项目文档(包括文本文件、图象文件、二进制文件、声音文件、视屏文件)存入数据库进行项目研发管理工作。用户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS,它的每次改动都会被记录下来,用户可以恢复文件的早期版本,项目组的其他成
2、员也可以看到有关文档的最新版本,并对它们进行修改,VSS也同样会将新的改动记录下来。你还会发现,用VSS来组织管理项目,使得项目组间的沟通与合作更简易而且直观。VSS可以同 Visual Basic、Visual C+、Visual J+、Visual InterDev、Visual FoxPro 开发环境以及 Microsoft Office 应用程序集成在一起,提供了方便易用、面向项目的版本控制功能。Visual SourceSafe 可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。在提倡文件再使用的今天,用户可以同时在文件和项目级进行工作。Visual SourceSaf
3、e 面向项目的特性能更有效地管理工作组应用程序开发工作中的日常任务。11 VSS中的文件当你要修改某个文档时,需要先从数据库中将它签出(check out),或者告诉VSS你要编辑该文档。VSS会将该文档的副本从数据库中拿到你的工作文件夹(working folder)中,你就可以修改你的文档了。如果其他用户再想对同一文档进行修改,VSS会产生一个信息,告诉他,该文档已被签出(check out),从而避免多人同时修改文档,以保证文档的安全性。当你完成修改之后,需要将文档 签入(check in)VSS。这个操作从你的工作文件夹(working folder)中复制被你修改的文档,并将它放回V
4、SS数据库,以便其他用户能够及时看到文档的改动。VSS能够保存文档的所有改动,并显示最新版本,同时早期版本也会被跟踪记录下来。VSS对反增量技术的运用,仅需要用很少的磁盘空间就能使得用户获取文档的所有版本。如果你没有修改文档,你可以执行撤消签出(undo check out)命令,文档将被保存为被签出(check out)之前的状态。如果你只需读取某一文档而并不需要编辑它,你可以执行取出(get)命令,将文档放入你的工作文件夹,再选择查看文档(view),来查看你的文档的最新版本。12 VSS中的项目项目(project)是指用户存储在VSS数据库中的所有文件(file)的集合。用户可以在项目
5、之间或项目内部实现文件的添加(add)、删除(delete)、编辑(edit)、共享(share)。一个“项目(project)”在很大程度上类似于一个普通系统的的文件夹,不同的是它能更好地支持文件合并(merge)、跟踪(archive)和版本控制(version control)功能。文件保存在VSS数据库中的项目(project)里。你无须管理存储在VSS 中的文件正本,除非你要检查或与其它拷贝进行比较。VSS为每一位用户提供了一份备份文件放入工作文件夹(working folder),供用户对文件进行查看与编辑。尽管没有工作文件夹也可以查看文件,但要想真正实现对文档的处理,必须建立工作
6、文件夹。13 VSS的版本控制功能VSS能够保存文件的多个版本,包括文件版本之间每一处微小的变动。版本控制有以下几方面的内容:l 组内合作在缺省的情况下,一般一个文件在某一时间只允许一个用户对其进行修改,这样可以防止文件意外地被其他用户改动或者覆盖。但管理员可以改动这种缺省的设置,允许文件多层签出。这种设置也能防止过多的、不必要的改动。l 版本追踪VSS能够对源代码和其他文件进行存储和早期版本的追踪,从而实现重建文件早期版本等有关功能。l 跨平台开发在多平台开发的情况下,版本追踪用于维护核心代码。l 代码的再使用 追踪程序基准使得代码可重用。14 文件的拆分和共享在VSS中可以实现一个文件被多
7、个项目共享(share)。在一个项目中对文件的改动可以自动反映到其他共享的项目中去。这正提倡了代码重用。在file菜单中的properties中,点击link,可以查看某一文件的共享情况。拆分(branch)是将文件从原来共享的项目中分离出来的过程。它使得VSS可以实现从不同的路径追踪文件。注:在其他版本控制系统中,分支是通过跟踪版本号来实现的。例如:版本“2.3.9.2”是版本2.3的第二个修订版本的第九个分支。而VSS通过明显不同的项目名称实现对文件分支的跟踪。拆分文件就断开了共享连接,使得本项目中的文件与其他原来共享的项目无关。对此文件的修改将不会再反映到其他项目上。拆分是这样被建立的:
8、两个文件以前有着共同的历史记录,从实现拆分开始,他们的历史记录将被VSS分别追踪。拆分文件之后,link按纽将不再显示已断开的连接,但你可以用path(file菜单中的properties项)按纽浏览拆分的历史记录。共享(share)文件就是在多个项目间建立文件的连接。拆分(branch)文件就是在项目之间建立了不同的文件路径。15 工作文件夹(working folder)VSS是存储和管理文件的工具,但是编辑和编译文件必须在VSS指定文件夹中进行。这个文件夹叫工作文件夹,它可以是现存的文件夹,也可以是VSS新建的文件夹。VSS浏览器在文件列表上方显示了文件的工作文件夹的路径。在VSS系统中
9、,工作文件夹才是你真正用于处理文档的地方。当你要编辑或修改某个文档时,必须对文档实施check out 操作(详见3.3.5修改和编辑文件),VSS将该文档从项目中拷贝出来,放入你的工作文件夹。当你修改完毕并check in 文件之后,VSS又将文件重新拷贝到数据库中以记录你的修改。一旦你将文件签出,VSS就开始在你的本地机上创建并管理你的工作文件夹。每一个用户、每一个项目或每一台微机都可以有自己的工作文件夹。如果Joe在项目$/SpreadSheet和$/WordProcessor上工作,他就有相应的2个不同的工作文件夹。如果Hanna在同样的项目上工作,对于每一个项目她又有自己的工作文件夹
10、。当你为某个项目设置了工作文件夹,你可以用它来放置你该项目中包括子项目再内的所2 VSS的客户端安装21 安装VSS的系统条件l 计算机/处理器: 处理器为486DX/66MHz或以上PC机推荐Pentium或更高级的处理器。l 内存:Windows 95或以后的版本要求16 MB RAM (推荐32 MB);Windows NT 4.0要求24 MB (推荐32 MB)。l 硬盘:客户机:典型安装:59MB; 72 MB;安装过程:66 MB;l 服务器:典型安装:128 MB;最大安装:141 MB;l 附加硬盘要求:Internet Explorer:典型为43 MB,最大59 MB;M
11、SDN:典型57MB,最大59 MBl 驱动器:CD ROMl 显示:VGA或更高级显示器,推荐Super VGA。l 操作系统:Microsoft Windows 95或以后版本或者Microsoft Windows NT 4.0,NT要求Service Pack 3或更高版本(包括Service Pack 3l 外围设备/其它: Microsoft Internet Explorer 4.01 Service Pack 1 (包含).22 从网络安装VSS客户端1) 打开本地计算机的“网上邻居”属性对话框;2) 点击“配置”按纽;3) 将“MICROSOFT网络用户”的属性设置为:登录到W
12、INDOWS NT 域,域名为PLANNING;4) 添加TCP/IP、NETBEUI、IPX/SPX协议;5) 重新启动计算机,登录“planning”域;注:管理员为每位NT用户设置的登录密码为“111”,用户在第一次登录时,计算机会提示用户修改密码。6) 从“网上邻居”的“planning”域中查找服务器“VSSDATA”;7) 打开共享的“VSS”文件夹并双击“NETSETUP”;8) 按照安装程序的提示开始安装。3 VSS的基本使用操作31 登录VSS点击VSS图标或从程序菜单中运行Visual SourceSafe 6.0,即可打开VSS浏览器。如果用户登录的VSS密码和登录PLA
13、NNING域的密码是一致的,系统将不再提示输入进入VSS数据库的密码;如果用户为VSS设置的密码与登录PLANNING域的密码不同,系统将提示用户输入VSS的登录密码。关于如何修改VSS用户密码,详见“3.2.14修改用户密码”。32 VSS浏览器当你一打开VSS,如果你设定了密码的话,它会提示你输入密码。如果你没有设定密码,你可以直接看到浏览器。在浏览器上,你可以浏览你的数据库、查看项目列表、显示文件统计信息、执行命令对文件和项目进行操作等。浏览器的最上方的标题栏是你当前连接的数据库。VSS使用符号来提供有关文件和项目信息。菜单栏的下面是常用工具栏,这里有许多常用命令的按纽,它可以帮你快速地
14、执行对文件的操作。在项目栏中,显示有项目列表,包括特殊项目的有关信息。文件栏显示了当前项目的所有文件的列表。结果栏显示当前你所执行的操作的结果。33 VSS基本操作331创建新的文件夹1) 选中要创建新文件夹的项目(上级文件夹);2) 在file菜单中选中creat project;3) 写入要添加的文件夹的名称,同时也可以在comment栏中为新建的文件夹添加备注;4) 点击OK。332添加文件夹1) 选中你要添加文件夹的项目(上级文件夹);2) 在file菜单中选中add files;3)在文件夹列表中选中要添加的文件夹;4)点击add,同时可以在comment栏为你添加的文件夹做一个简单
15、备注;5)如果你要连同子文件夹一起添加,选择Recursive;5) 点击OK,成功添加了一个带有备注的文件夹。或者点击close,退出操作,返回addfiles对话框,点击close。333添加文件3321使用add命令添加文件1)选中你要添加文件的文件夹;2) 在fil菜单中选中add files;3) 在文件列表中选中要添加的文件;如果要添加多个文件,可以使用CTRL键或SHIFT键,同时选中多个文件;4)点击add,同时可以在comment栏为你添加的文件夹做一个简单备注;5)点击OK。3322用拖动的方法添加文件/文件夹1)打开VSS浏览器,调整其大小,使得Windows资源管理器能
16、够显示出来;2)打开Windows资源管理器,调整大小,使得两个浏览器可以同时显示;3)从Windows资源管理器中选择你要添加的文件或文件夹;4) 拖动你所选的文件或文件夹,放入VSS浏览器,文件被添加进项目,而添加的文件夹将作为项目的子项目。333查看文件1) 在文件列表中选中要查看的文件;2) 在EDIT菜单中选中view,打开对话框;3)选中view SourceSafes copy of this file;4)点击OK。334创建工作文件夹在执行签入(check in)、签出(check out)、撤消签出(undo check out)、取出最新版本(get latest ver
17、sion)和文件合并(merge branches)等命令时都必须使用工作文件夹。工作文件夹可以随时设定或修改,VSS系统中可以通过两种方式设置工作文件夹。3341专门创建工作文件夹1) 在VSS浏览器的文件或项目列表中选中要设置工作文件夹的文件/文件夹;2) 在file菜单中选择set working folder,打开对话框;3) 在资源管理列表中选择或新建文件夹;4) 点击OK。3342利用check out操作设置工作文件夹在对文件执行check out操作时,如果该文件还没有设置工作文件夹,系统会提示用户为文件创建或指定工作文件夹,用户可以根据系统的提示对文件进行工作文件夹的设置。3
18、35修改和编辑文件1) 在edit菜单中选中edit file,打开对话框;2) 选择check out this file and edit it in your working folder;3) 点击OK。注:如果用户已经为文件设置了工作文件夹,VSS会将该文件的一个COPY放入你的工作文件夹并打开文件,让用户进行修改和编辑;如果用户还没有为文件设置工作文件夹,VSS系统会提醒用户设置工作文件夹,用户可根据系统提示,先设置工作文件夹,才可以对文件进行编辑。336移动文件/文件夹3361移动文件你只有一种方法移动文件:将文件共享(share)到项目中,再将其从原来的项目中delete或是d
19、estroy。移动文件后,历史信息仍然有效。但是你不能用move命令来移动单个的文件。3362移动文件夹(project)注:要使用移动(move)命令,必须先请管理员为你设置对移动目的项目的添加(add)权限和对源项目中文件的破坏(destroy)权限。使用移动命令你可以重新定位子文件夹,将其从一个文件夹移动到另一个文件夹中。这个命令重新定义了被移动文件夹的路径。这个命令不可以重命名文件;你只能通过执行重命名命令来实现它。这个移动命令不会改变文件夹的内容或其中子文件夹的历史信息,它只会影响到新的和旧的上级文件夹的历史信息。警告:当你移动一个文件夹之后,就不能再如实地重建其上级文件夹的早期版本
20、。移动文件夹的具体操作步骤如下:1) 选中要移动的文件夹;2) 在file菜单中选中move,打开对话框;3) 在列表中选择目标文件夹;4) 点击OK。337共享文件/文件夹(share)1) 在VSS浏览器中选择你要共享的目标项目。2) 在SourceSafe菜单中选择share,打开共享对话框。3) 在file to share列表中选择你要共享的文件,如果文件没有显示,可以旁边的项目列表中查找。4) 点击share。5) 点击close。338拆分文件(branch)3381拆分被共享的文件1) 在浏览器中选中你想要拆分的文件;2) 在SourceSafe菜单中选择branch,打开拆分
21、对话框;3) 在comment中填写备注;4) 点击OK。3382用一步操作完成文件的拆分与共享1) 在VSS浏览器中选择你要branch/share的项目;2) 在SourceSafe菜单中打开share对话框;3) 在file to share列表中选择要共享的文件,如果你要的文件没有显示,在项目列表中339删除/恢复文件或文件夹如果想从VSS中移走某个文件,你必须首先确定是仅仅从项目中移走,还是从VSS数据库中移走。你还必须确定是要删除文件,但使其能够恢复,还是永久性地破坏它。VSS中有以下三种途径可以实现从数据库中移走文件。33391删除(delete)将文件从项目中移走。该文件仍然存
22、在于你的VSS数据库和其它共享该文件的项目中,你可以恢复它。此命令同样适用于项目。1) 选择文件或项目;2) 选择file菜单中的delete命令;3) 点击OK。33392破坏(destroy)删除(delete)对话框中有永久性破坏(the Destroy Permanently)选项,你一旦选中它,文件或项目将从VSS数据库中被移走,你不能再恢复它。此外,当Destroy 和Destroy Permanently命令用于共享文件时,它只作用于当前文件夹,其它共享的文件夹仍然保留该文件,该文件依然保存在VSS数据库中。1) 选择文件或项目;2) 选择file菜单中的delete命令;3)
23、选中 Destroy Permanently 选项;4) 点击OK。33393清除(Purge)这个命令将永久性地移走你已经删除的文件或项目,但没有破坏它。你可以使用这一命令清空你的文件或项目中的所有内容,但不能恢复它们。1) 在VSS浏览器中选中项目;2) 打开file菜单的properties对话框,按delete按纽;3) 在列表中选择要清除的文件名;4) 点击purge;5) 如果要继续,在VSS给你的提示栏中点击yes。3310查看文件/文件夹的历史信息或早期版本在历史信息中保存有每一个文件的详细信息。在history对话框中,你不仅可以浏览到文件的版本信息、备注、以及文件的相关历史
24、记录,也能够获取文件的某个旧版本。注:只有文件(file)可以从历史信息中check out,文件夹(project)不能从中check out。你还可以从历史信息对话框中执行get、check out、diff、pin、unpin、roll back和reprot等操作。要查看历史信息:1) 在tool菜单选中show history,打开history options对话框;2) 点击OK。3311获取文件的最新版本1) 选择你要操作的文件,也可以是多个文件或某个项目;2) 在SourceSafe菜单中选择get latest version;3) 如果你事先没有设定工作文件夹,VSS会提
25、示你是否设定一个工作文件夹,点击OK,设定一个工作文件夹;4) 如果你已经确定了选项,VSS就会显示get latest version对话框,你就可以从当前的项目中获取文件的最新版本的备份,它放在你的工作文件夹中。3312获取文件的早期版本1) 选中你要查看的文件;2) 在tool菜单中选中show history,打开history option对话框;3) 点击OK,打开history对话框;4) 选中你要看的版本;5) 点击get,打开get对话框;6) 如果你事先没有设定工作文件夹,VSS会提示你是否设定一个工作文件夹,点击OK,设定一个工作文件夹;7) 在取出对话框中点击OK,文件
26、版本的备份就会从当前项目调入你的工作文件夹。3313修改用户密码使用更改密码命令来设置或更改你的密码。要更改密码,必须首先知道当前的密码,如果你忘记了自己的密码,请与管理员联系。登录的时候,VSS会提示你输入密码以确认你的身份。如果管理员为你设置的用户名与你的网络名是相同的,VSS将不会再提示你输入密码。注:你的VSS的密码可以与你使用的操作系统的密码相同,也可以不同,它并不会替换你操作系统的密码。如何更改密码:1) 从tool菜单打开change password对话框;2) 在旧密码框里键入你当前的密码;3) 在新密码框里键入你的新密码;注:密码可以设1到15个字符,它以*的形式显示;4)
27、 在确认框里再次键入新密码;5) 点OK。3315打开/关闭数据库如果你使用了VSS,你的文件和项目就会被存储在一个数据库中。它安全地保存你的信息并为你提供重要的历史信息和版本跟踪。要创建新的数据库,要与VSS管理员联系。33151打开现有的数据库要运行你的VSS,你必须与存储你的文件的数据库连接。这一步通常由VSS自动完成,除非你要选择其他的数据库。如果数据库还没有安装,请与管理员联系。1) 从file菜单,选择open SourceSafe database,打开对话框;2) 从数据库列表中选择一个数据库;3) 点击open,打开数据库。33152关闭数据库你只能在一个数据库中进行工作。因
28、此,如果要关闭一个数据库,只需打开另一个数据库即可。Visual SourceSafe如何支持并行开发前言如今随着软件项目规模的日益增大以及项目复杂性的不断加剧,软件配置管理(SCM)的重要性已越来越受到大家的认可。许多优秀的软件配置管理工具也应运而生,使得我们能够轻松有效地管理我们的软件项目,作为这其中的一员,Microsoft Visual SourceSafe具有简单易用、方便高效、与Windows操作系统及微软开发工具高度集成等优点。我相信有相当一部分人曾经使用或者正在使用VSS,对于它的一些基本用法在这里不再赘述,本文将主要探讨Visual SourceSafe 6.0中的一些高级特
29、性,希望给大家在实际的工作过程中带来一些帮助。我们知道随着软件规模的日益增大,软件开发周期会变得越来越长,投入的人力也会越来越多。在整个过程中,将不可避免地会产生并行开发的情况,那么在VSS中是如何支持并行开发的呢?在并行开发的过程中要注意些什么呢?这就是本文希望与大家分享的。本文要求读者对VSS有一定的熟练程度。一些有用的设置在讲解并行开发之前,让我们先来看看VSS中一些非常有用的系统设置,他们可以用来加强管理或者简化你的工作。首先是一些与你的项目安全管理策略有关的设置,比如是否允许multiple checkouts、是否激活项目安全机制(project security)等。还有一些是方
30、便工作的,比设置影子目录(shadow folders)、重用上次注释、双击直接编辑文件、是否采用图形化归并等。这些你都可以在Tools-Options里进行设置。什么情况下会出现并行开发不知道有没有喜欢听评书的朋友?我想一定和我一样最讨厌听到:欲知详情如何,且听下回分解。不过我们今天要讲的是另外一句话:花开两朵,各表一枝。我记得当时虽然这边打得热火朝天,大呼过瘾,但是心里总是惦记着那边怎么样啦!真恨不得有两个电台,一边是鲁智深大闹野猪林,一边是林教头风雪山神庙。那么在实际的项目开发过程中,什么时候会出现花开两朵的情况呢?1、 你想修改项目早期版本中的某个bug。2、 其它的小组成员占有了你希
31、望处理的文件。你可以等他将该文件check in,或者你可以采取multiple checkouts,你还可以选择在一个分支上工作。3、 你所做的工作涉及到许多文件,你选择一个分支流就可以避免经常打乱别人的工作。同时你可以将所有的工作测试完后再将它们集成到你的项目中。4、 项目规定你不能够在主线上工作。相反地,项目被分成许多小的部件,每个部件是一个分支,只有该部件完成后,才会将它合并到主线中。那我们是不是需要两个电台呢(建立两个项目)?可喜的是,VSS中提供了共享、分支等操作来解决并行开发的问题。文件共享(share files)的概念在VSS中你可以在不同的项目之间共享文件。我们知道,在VS
32、S的数据库中有且仅有文件的唯一拷贝-主控拷贝(master copy),因此共享文件也就是在不同的项目里建立了指向该主控拷贝的链接。如果你在其中一个项目中改变此文件,那么其他项目中所有的共享也随之改变。此外,如果选择共享某个项目中的所有文件,我们也可以称之为共享该项目。如何实现文件共享1、 在VSS Explorer中,选择你希望在其中共享文件的项目。2、 选择SourceSafe菜单,单击Share,或者单击右键菜单中的Share显示Share对话框。3、 通过选择Project和File to Share下拉框来选择你准备共享的文件。4、 点击Share.5、 点击Close.如果你选择的
33、是某个项目,系统还会提示你输入新的共享项目名称。操作完成后,你会发现在当前项目中增加了刚才选择的文件。如附图一所示,我在项目$/projectname/sourcecode/client中共享了项目bugfix,操作完成后在client下增加了目录bugfix,而且我将$/bugfix项目中的network.txt文件check out出来后,项目$/projectname/sourcecode/client/bugfix中的network.txt文件也自动被check out。(见附图二)附图一:文件共享附图二:文件共享后文件共享机制确实为我们带来了不少便利之处,它可以减少数据库中文件的数量
34、,能够实现文件的重用。但是,文件共享机制的非各自独立性也限制了它扮演更重要的角色,真所谓成也萧何,败也萧何!分支操作(branching)要真正地支持并行开发,就不得不用到分支操作。与共享操作不同的是,分支操作实际上是将文件放在不同的项目中来实现完全的独立性,此时在一个项目中的文件修改不会影响到其他的项目中的文件。此外,共享操作后形成的位于不同项目里的两个文件拥有一个共同的祖先,也就是他们的历史(history)记录是从同一点分离出来的。如何实现分支操作注意,在进行分支操作前,你必须确认已经共享了该文件。当然,你也可以将共享、分支操作放在一起完成。1、 在VSS Explorer中选择目标文件
35、。2、 选择SourceSafe菜单,单击Branch显示Branch对话框。3、 如果需要,你可以在Comment框中加入注释。4、 单击OK。附图三:分支操作操作完成后,你将会发现项目$/projectname/sourcecode/client/bugfix中的文件network.txt由check out状态变成了uncheck out状态,而且改变项目$/bugfix中的network.txt文件对它也没有任何影响。如何在具体的应用中使用这些特性那些书上的大侠们学好本领后,都要到江湖上去闯荡一番。那我们了解这些基本的操作后,也一定希望能够在实际的项目中小试牛刀,我们就以早期版本中的b
36、ug修改为例。我们假定我们项目的2.0版本刚刚完成,项目开发小组继续朝着3.0版本前进,同时试用项目维护人员需要一个临时的2.1版本来修改试用过程中发现的bugs。具体的步骤如下:1、 将当前项目$/projectname/sourcecode/client加上标签(Label)-Version 2.0。2、 继续在该项目上进行修改,形成新的版本。(如附图四)3、 这个时候在版本2.0的试用过程中发现错误,你需要一个临时的版本来修改错误同时又不影响版本3.0的开发。4、 选择Tools菜单,单击Show History显示Project History Options对话框。5、 选中Incl
37、ude Labels复选框。6、 单击OK显示History of Project对话框。7、 选择加有标签Version 2.0的版本。8、 单击Share显示Share From对话框。9、 选择将要产生的项目的父项目,我们选择$/。10、单击OK显示Share对话框。11、将此项目命名为bugfixAfterV2.0,单击Close退出History of Project对话框。12、操作完成后会发现在VSS中增加了一个项目$/bugfixAfterV2.0(注意此时文件2.txt前面的图标形状,如附图五),试着check out文件2.txt,系统会提示你所有的文件已被钉住(pinne
38、d),操作不成功。是的,你还需要下一步操作。13、选定那些你确实需要修改的文件,然后进行分支操作。这样你就可以任意修改这些文件,而且你会发现图标也恢复到原来的样子。附图四:分支操作前的项目历史记录附图五:分支操作完成后文件归并(merge files)正所谓,分久必合,合久必分。分支操作以后,你肯定需要重新将这些文件合并到一起,比如上面那个例子,你肯定希望在版本2.0中被修改了的错误不要在版本3.0中再出现,这个时候你就需要用到归并操作。所谓文件归并就是将由一个文件产生的多个不同拷贝重新形成一个唯一的新的文件版本,一般都是将分支上的改变反映到主线上,所以称之为归并操作(当然还存在其他两种情况,
39、使用multiple checkouts,某些情况下get一个文件的时候)。在文件归并过程中VSS并不能去决定文件差异的取舍,它只是将这些文件间的异同提交给你,由你自己来确定最后的文件内容。当然比较的基准就是我们前面提到的它们共同的祖先。有两种方法可以进行归并操作,一种是默认的visual merge,另一种是manual merge。一般推荐使用前一种方法。文件归并过程中涉及到两个概念,一个是投送者(contributor),另一个是目标(object)。投送者就是你在分支上的那些文件,目标就是你在主线上的那些文件,归并操作完成后,只有目标的内容改变,而投送者的内容保持不变。如何实现归并操作
40、1、 在VSS Explorer中选择目标文件或者项目。2、 选择SourceSafe菜单,单击Merge Branches显示Merge To对话框。3、 在Projects框中选择投送者所在的项目名称,所以说该对话框的名称应该为Merge From,而不是Merge To。4、 单击Merge显示Comment对话框。5、 输入注释,点击OK。6、 如果两者之间的差异很明显(比如一个文件比另外一个文件多出一行),系统会自动帮你决定目标文件的内容。反之,系统显示Visual Merge对话框,你可以自己决定目标文件的内容。(3)操作完成后,查看一下目标文件是不是变成了你希望的内容。好啦,至此
41、所有的工作已经完成。你可以放松一下来杯浓茶,不敢喝咖啡,怕被Sun公司控告侵权。但是中国人有个习惯,不管什么东西都喜欢分出个高低,排个名次。我记得小的时候对隋唐演义中的好汉排名津津乐道,什么第一名李元霸,第二名宇文成都等等。那好,我们也来啰嗦一下,评评VSS的功过是非。(4)评说VSS在支持并行开发方面,VSS提供了大量优秀简洁的特性,但是在以下几个方面稍显不足:1、 在进行分支操作的时候,灵活性不是很大,只能是单一地选择某个项目中的所有文件,不能进行一些自定义的设定,比如我只希望选取所有的文本文件。2、 由于VSS中主线和分支是采用不同的项目来区分,所以很容易被混淆而且增加项目的数量,不如采
42、取版本号来区分直观。3、 在进行归并操作时,投送者与目标的概念很模糊,而且没有显示地提出这两个概念。4、 由于VSS中没有版本树的概念,所以分支操作后没有一个直观形象的版本演化的感官认识,就像Rational ClearCase中那样,这样使得不能把分支和主线很好地联系在一起。总结本文主要讲解一些VSS使用中的高级特性,使得你能够用来应付一些比较复杂的情况。但是,VSS毕竟只是一种工具,项目配置管理的成败主要取决于项目的配置管理策略。说明1) 本文所有的例子都是基于Visual SourceSafe 6.0英文版,其他的版本可相应对照。2) 这两个概念是从Rational ClearCase借
43、用过来的。3) 关于Visual Merge对话框的详细信息,可以参考VSS的帮助文档。4) 当然本文不准备在整体上来评价VSS,主要是从支持并行开发这个方面来说说VSS的不足之处,只要与Rational ClearCase进行对照。SourceSafe中的权限管理前言如今随着软件项目规模的日益增大以及项目复杂性的不断加剧,软件配置管理(SCM)的重要性已越来越受到大家的认可。许多优秀的软件配置管理工具也应运而生,使得我们能够轻松有效地管理我们的软件项目,作为这其中的一员,Microsoft Visual SourceSafe具有简单易用、方便高效、与Windows操作系统及微软开发工具高度集
44、成等优点。今天,我们就来讲讲VSS中的权限管理。首先我将讲解VSS中权限机制实现的原理,这里面设计到VSS的默认安全访问机制、项目安全等内容,接着我将告诉实现权限机制的具体方法,最后我将结合一个软件移交项目的具体情况来谈谈权限管理如何应用到实际的项目过程中。一、VSS默认的安全访问控制每次你安装VSS以后,系统自动激活默认的安全访问控制机制。这套机制非常简单,它包括两个等级的权限:1) 只读权限:用户可以查看VSS数据库中的所有对象,但是不能够修改2) 读写权限:用户可以查看和修改VSS数据库中的任何对象每次你增加新用户的时候,你可以决定该用户的权限等级。在“Add User”对话框中包含一个
45、“Read Only”复选框,你可以通过它来确定用户具有的权限。我们前面说过这只是个极其简单、粗线条的解决方案,但同时也是最简单的。在实际过程中,你可能需要更细化的权限分配,甚至希望每个文件针对不同的用户都能设置不同的权限。那我们就得亲自动手设置我们项目的安全机制。 注意:SourceSafe中的所有安全设置都是在Visual SourceSafe Administrator中进行的,所以在深入以下细节之前,你必须确认一件事情:你的Admin密码足够安全,除你之外没有任何人可以随心所欲地进入Visual SourceSafe Administrator。否则,一切安全考虑都是徒劳。二、项目安全
46、与用户访问权限在讲解项目安全之前我们先来回顾一下VSS的基本组成框架,VSS包含多个数据库(database),每个数据库又包含许多的项目,而且可能项目里嵌套着不同的子项目,最后才是你的源文件。你可以把这个类比成操作系统中的磁盘分区,目录,子目录,文件,每台机器包含许多的磁盘分区,每个分区中包含无数个目录、子目录,在子目录下才是你的文件。VSS中的用户是基于VSS数据库的,也就是说每个数据库都包含有自己的用户清单。用户访问权限意思是用户可以访问(包括查看、修改和执行命令等)数据库中的哪些项目,对项目来说就是它只能被那些已经授权的用户访问,也就是所谓的项目安全。很遗憾VSS只提供了到项目(对应于
47、目录)的用户权限控制,并不能针对每个文件来设置不同的用户访问权限(比如Rational ClearCase等就提供此功能)。虽然你可以用某种变通的方法来做到这一点,比如增加子项目,不过那样就破坏了整个项目结构的规范性、可读性和合理性,甚至产生些无任何意义的子项目。VSS定义了四级用户访问权限,级别由低到高,后者包括所有前者的权限,比如说拥有Check Out权限就自动拥有了读的权限。1) 只读(R):允许查看文件,对应于View、Get等命令2) Check Out(C):可以使用Check Out,Check In,Undo Check Out等命令修改文件内容3) 文件增删(A):可以在项
48、目中增加、删除、重命名文件或者给文件加标签,对应的命令有Add,Delete,Label,Rename等4) 破坏(D):这级权限对应于那些具有巨大破坏性的操作(就是那些一不小心就可能被炒鱿鱼的操作),请牢记它们的名字:Destroy,Purge,Rollback。所以亦有人戏称之为自杀权限。其实你可以发现默认安全机制中的两级权限是和这四者对应起来的,只不过后者把前者的读写权限细分为三个不同的级别。好啦,了解每级权限各自的含义之后我们就可以开始设置不同用户的权限啦。设置用户权限之前,你必须激活项目安全机制。打开VSS Administrator的Tools菜单,点击Options得到Sourc
49、eSafe Options对话框,选取Project Security并且勾上Enable project security复选框。(如下图所示)图一 激活项目安全机制VSS中有三种方法可以设置用户的项目访问权限:针对项目设置每个用户的权限,针对用户设置访问每个项目的权限,拷贝用户权限,它们分别对应于Tools菜单下的Assign Rights by Project,Rights Assignments for User,Copy User Rights。我们以方法一为例做一简单说明。如下图所示,在左边框中选定项目,在右上框中选定用户,右下脚的User rights中就显示该用户现具有的权限,
50、选中不同的复选框来设置你自己的权限。注意:对每个项目的用户权限设置自动反映到该项目的所有子项目中。 图二 用户授权三、权限管理在实际项目中的应用在本小节中,我主要结合在实际项目过程中作为配置管理员的经验来谈谈权限管理的实际应用,以及在应用过程中需要考虑的因素。我们要接触的这个项目为一软件移交的项目,这个项目团队的成员组成和职责分配如下:项目经理:1人,负责协调整个项目业务分析师,1人,负责整个系统业务的掌握系统架构师:1人,负责整个系统的系统架构Package Owner:3人,分别负责系统前端、中间层及后台数据库三个部分 模块负责人:3-5人,分别负责各个模块数据库管理员(DBA):1人,负
51、责系统数据库Test/QA:1人,负责整个软件的测试和质量保证Technical Writer:1人,负责相关技术文档的写作变更控制委员会(CCB):3人,负责项目需求的变更审核及执行,包括软件配置管理员,外方项目经理实际过程中大多会发生人员交叉现象,比如我们项目的实际人数就只有9人,项目经理又同时是CCB中的一员,Package Owner同时兼任模块负责人。根据我们项目的实际组成情况,我在VSS中给出了如下所示的项目结构:图三 VSS项目结构图示说明:1、exec项目中主要存放项目可执行文件或者软件安装文件,由于该项目比较复杂,建立过程耗时长且比较复杂,所以直接在VSS中存放可执行文件。一
52、般的项目不推荐这样使用。2、图中只是显示整个项目结构的主要部分,省略了细节部分,比如client项目中包含有许多的小项目。接下来,就需要为每个项目、子项目设置不同的用户访问权限。由于所有的软件重大变更都需要交由CCB审核签字后方可执行,所以我们把整个项目的D(6)级权限赋给CCB成员。而项目经理主要负责项目的整体进度的把握以及与外方项目组、其他部门的协调工作,所以拥有整个项目的R权限并且拥有development document的A权限。配置管理员的权限有两者可能,一种就是拥有整个项目的A权限,另外一种可能就是只拥有部分项目的A权限,这主要取决于赋予给配置管理员的实际权限有多大。以此类推,各
53、个模块负责人拥有各自模块的A权限。此外由于移交项目的特殊性,一般在项目开始过程中主要以培训为主,很少涉及到软件的修改,所以建议在项目开始阶段不赋予开发工程师用户C权限以免引起不必要的错误和争论。总结本文通过讨论VSS中权限管理实现的具体机制,并且结合例子讲解了在实际过程中的应用。虽然移交项目有着它本身的特殊性,但我相信对于任何项目来说其安全管理的基本思路是相通的,希望此文能够给大家以一定的启示和借鉴。参考1) 本文中会大量涉及到“项目”一词,有的时候它是指实际的软件项目,有时它又是指VSS数据库中的项目、子项目,请注意区分。2) 有关软件配置管理的更详细信息,可以参考本网站相关内容。软件配置管
54、理主要包括版本管理、变更管理、权限管理等方面,本文主要涉及权限管理。3) 软件版本采用Microsoft Visual SourceSafe 6.0英文版,其他的版本请进行相应的对照。4) 所有这些命令的详细信息可以参考VSS帮助。5) 项目背景大致介绍:所移交的软件为一国外公司的软件,是基于Microsoft的DNA架构的三层应用,代码量为150万行左右。移交的目标:掌握现有系统,充分了解相关的商业逻辑,为以后开发出自己的符合中国国情的软件做好充分的准备。这其中可能涉及到需求的再分析、系统的重新架构以及向Java平台的迁移。6) 我们分别用R、C、A、D来表示VSS中的四级权限Read,Ch
55、eck Out,Add,Destroy。实用指南一、版本管理的必要性如果说70年代的软件危机导致了软件工程思想的诞生和理论体系的发展,那么8090年代尤其是90年代软件产业的迅猛发展导致了另一种新思想的产生和实现,这就是软件的版本管理。只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对已完成编码调试的软件进行全面的测试。在软件开发这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。所有的这些交流反馈意
56、见信息都有可能导致对软件的修改,小的可能只是对某个源文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。在这个工程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且我们并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实地摆在项目开发管理者的面前,他/她该如何有效地解决这些问题,具体地说就是如下一些问题:1. 怎样对研发项目进行整体管理;2. 项目开发小组的成员之间如何以一种有效的机制进行协调;3. 如何进行对小组成员各自承担的子项目的统一管理;4. 如何对研发小组各成员所作的修改进行统一汇总;5. 如何保留修改的轨迹,以便撤销错误的改动;6. 对在研
57、发过程中形成的软件的各个版本如何进行标识,管理及差异识辨等等。一个非常直接的反应,我们必须要引进一种管理机制,一个版本管理机制,而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理。以往的那种被誉为具有良好编程风格的做法,诸如在对他人的源程序进行修改时注释修改原因,修改人和日期,如果是多个成员同时进行了修改,那么需要进行及时的人工的差异比较和综合以便形成一个统一的新版本。这种做法在当前的大型软件的开发中已经越来越没有空间了,可以说是一种以小作坊的形式来面对软件的社会化大生产,再也不可能行得通了。 其实,版本管理的思想很早就存在于软件开发者的头脑之中,只是以往的认
58、识没有现在人们所意识到的那样迫切。UNIX的程序开发系统较早就提供了能够进行开发小组中源代码版本管理的工具,现在的Linux更是提供功能强大的能够跨平台的版本管理器,国外公司的基于Windows的版本管理器也已经有了比较成熟的产品,国内的研究单位如北京大学计算机系CASE实验室也在致力于这方面的工作。在众多的成熟产品和试验产品中,这里只将对使用比较广泛,有较大用户前景且又能较易获得的版本管理器产品Microsoft公司的Visual SourceSafe 6.0进行详细的介绍,针对普通的研发小组的解决方案,及具体的实现。二、Visual SourceSafe 6.0(VSS 6.0)简介VSS
59、 6.0现在是作为Microsoft Visual Studio 6.0这个开发产品家族的一员,如Visual C+ 6.0和Visual J+ 6.0一样。1. VSS的简单工作原理Microsoft的VSS 6.0解决了软件开发小组长期所面临的版本管理问题,它可能有效地帮助项目开发组的负责人对项目程序进行管理,将所有的项目源文件(包括各种文件类型)以特有的方式存入数据库。开发组的成员不能对该数据库中的文件进行直接的修改,而是由该版本管理器将该项目的源程序或是子项目的源程序拷贝到各个成员自己的工作目录下进行调试和修改,然后将修改后的项目文件作Checkin提交给VSS,由它进行综合更新。VS
60、S也支持多个项目之间文件的快速高效的共享。当某个成员向VSS中添加文件时,该文件将会被备份到数据库中,以便所有的成员都能共享该文件。而且每个成员对所有的项目文件所作的修改都将被记录到数据库中,从而使得修改的恢复和撤销在任何时刻,任何位置都成为可能。小组的成员可能得到该项目的最新版本,对它进行修改,并保存一个新的版本。 VSS的项目组织管理使得开发小组的协调变得简单容易且很直观,当一个和一组文件发放给另一个成员,小组,Web站点或是任何其他的地址,VSS确保他们之间的真正共享及所选的一组文件的不同版本的安全性。现在,越来越多的开发者可以通过他们的开发环境来访问VSS的功能。而且VSS可以很容易地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论