【vfp精品源码栏目提醒】:网学会员为需要vfp精品源码的朋友们搜集整理了【精品】使用VisualSourceSafe - 其它资料相关资料,希望对各位网友有所帮助!
Visual SourceSafe 使用说明一、 概述 微软公司的 VSS 是一个相当不错和非常流行的项目管理工具,它主要帮助您管理您的项目,不管项目中涉及到何种类型的文件(文本文件、图形文件、二进制文件、声音文件、视频文件等) ,它都能把它们保存到一个数据库中。
当您需要在两个或多个项目中共享这些文件时,您能够快速并且有效地共享它们。
另外,VSS 也是一个版本管理工具,如果您把一个文件添加到 VSS 中,实际上,该文件是备份到VSS 的数据库中;当您签出该文件作了修改再签入时,VSS 能够自动识别并记下被修改的内容,也就是生成一个版本。
您可以在任何时候恢复任何一个版本,而且开发小组的每个成员也能够得到项目中任何文件的最新版本。
VSS 也和微软的许多开发工具的开发环境结合在一起,如 VC、VB、
VFP、ACCESS 等,这样,您也可以直接在这些开发工具的开发环境中使用 VSS。
VSS 有两个应用程序,一个是 VSS Administator,用于 VSS 数据库的建立、用户的设定和管理、项目权限设定等;另一个是 VSS Explorer,用于项目及文件的管理。
项目进行版本控制主要是使用VSS Explorer。
二、 使用目的 需要使用 VSS 主要是基于以下几个目的: 共享资源 如果您管理的是一个由多人组成的项目组,项目组成员之间的项目资源(代码、数据、文档等)共享是您首先会遇到的问题, 如何使得每个小组成员开发的项目资源能够及时准确地被所有项目组其它成员得到,这是 VSS 所能提供的主要功能之一。
版本管理 如果没有工具,项目的版本管理是一件十分困难和繁重的工作,而且许多工作(如多个版本之间的差异比较、文件版本信息记录等)几乎是无法用手工完成的。
有了 VSS,每次对文件的修改 VSS 都能自动记录(如修改人、修改日期等),并自动生成文件的版本号。
如果需要,您可以在任何时候取得任何一个版本的内容。
通过 VSS,您也可以比较文本文件任何两个版本之间的差异,以便了解修改信息。
您也可以在某一时刻为整个项目定一个版本,以便日后能够取得该版本项目。
协同工作 项目组在没有使用代码管理工具时,遇到最大的问题在于多人的协同工作。
一个源文件不知道哪个人手里是最新的,或者多人在本地同时修改了同一个文件,造成一个文件在多人手头内容各不相同。
VSS 能够确保一个时候只能有一人允许修改某个文件,只有修改完毕并且提交后,其它人才可以得到该文件的最新版本作再次的修改,避免了多人修改同一文件造成的冲突。
多人协同工作的项目组,强烈建议使用 VSS 来管理项目。
备份项目 另外,项目资源在 VSS 的数据库中,能够被多人共享访问的数据库一般放在服务器上,而且还可以导出到文件,这也达到项目的备份目的。
三、 适用范围 VSS 适合于任何需要版本管理的地方,如项目的源代码、数据、文档等。
项目组可以统一用它,即使是每个个人,对自己的资源也可以使用 VSS 来进行管理。
四、 VSS工作方式 VSS管理的基本元素是文件,多个文件通过项目的组织方式来进行管理,项目也就是存储在VSS中的多个相关文件的集合;您可以添加、修改、删除项目中的文件,也可以在多个项目中共享文件。
您如果打开 VSS,就会发现 VSS 管理项目和文件非常类似于操作系统中的目录和文件,VSS 项目相当于操作系统中的目录,VSS 根项目相当于操作系统中的根目录,VSS 文件相当于操作系统中的文件,见图 4-1: 图 4-1 VSS 中的项目及文件和操作系统中的目录及文件的主要区别:VSS 中的一个文件可以在多个 VSS项目中共享,这个特性在现实应用中对应于公共资源可以被多个项目中共享。
VSS 项目存放在 VSS 数据库中,一个 VSS 数据库相当于操作系统中的一个磁盘驱动器,它缺省包含一个根项目,在根项目上您可以建立多个项目,每个项目又可以建立多级子项目,文件存放在各级项目中。
您还可以根据需要建立多个 VSS 数据库。
数据库可以放在服务器的某个目录下,也可以放在任何客户机上,通过目录的共享方式使得多人能够通过 VSS 对该数据库进行访问,如下图所示: VSS 数据库 用户 1 用户 2 用户 N 重要说明:开发项目用 VSS 管理时,VSS 只是把该开发项目在 VSS 数据库上作了备份及历史信息的记录保存,您在本机上还有该项目的文件副本,开发过程中的编辑、编译等操作都是针对本机上的项目文件。
您即使把 VSS 项目数据库删除,也不会影响本机开发项目的编辑、编译等操作。
五、 使用VSS Administrator VSS Administrator 的主要功能是管理 VSS 数据库,通过它可以创建新数据库,对每个数据库建立并维护访问用户列表,设定项目的访问权限,项目的导出及导入口等。
启动该应用程序后,首先必须按超级用户(Admin)登录,同时选择登录的数据库。
见图 5-1: 图 5-1 其中 Admin 为超级用户,不能被修改。
口令与选择的数据库有关,因为用户不管是超级用户还是普通用户保存在数据库中,不同的数据库超级用户的口令也可能不同。
ltBrowsegt按钮可以选择数据库,选择ltOKgt按钮后,系统将列出当前选择的数据库设定的所有用户清单及相应权限,见图 5-2: 用户列表 图 5-2 Open SourceSafe Database 选择 VSS 数据库。
VSS 数据库可以存放在服务器或任何客户机上,当选择该命令后,系统将弹出一个对话框,用于选择一个 VSS 数据库,见图 5-3: 图 5-3 如果在数据库列表中没有您需要的数据库,您可以选择ltBrowsegt按钮,在指定的目录上选择srcsafe.ini 文件,就能把您需要的数据库添加到数据库列表中,然后在数据库列表中定位光标到该数据库上,选择ltOpengt按钮,系统即打开您选择的数据库,打开的数据库也称为当前数据库。
Add User 在当前数据库中添加新用户。
系统将弹出对话框,您只要输入用户名及口令即可。
添加的用户将出现在用户列表中。
Delete User 删除用户列表中的当前用户。
Edit User 修改用户列表中当前用户的用户名。
Change Password 修改用户列表中当前用户的口令。
Rights by Project 对当前数据库中包含的项目设置允许访问的用户及访问权限,见图 5-4: 图 5-4 界面左边是当前数据库包含的项目树状列表,可以展开或折叠各级子项目。
界面右上角是当前项目允许访问的用户列表,可以选择ltAdd Usergt按钮添加用户,选择ltDeleteUsergt按钮删除用户。
界面右下角是用户列表中当前用户对当前项目的访问权限。
访问权限分为 4 种: Read: 项目只读,只允许得到版本,不允许签入签出; Check Out / Check In: 项目文件允许签入签出; Add / Rename / Delete: 项目及文件允许添加、删除或改名; Destroy: 允许永久性删除项目。
Rights Assignments for User 设置当前用户允许访问的项目及访问权限,见图 5-5: 图 5-5 界面右下角是当前用户允许访问的项目列表。
界面左上角是项目列表中当前项目的访问权限,可以改变复选框修改访问权限。
选择ltAdd Assignmentgt按钮可以对当前用户添加新的项目及访问权限。
选择ltDelete Assignmentgt按钮删除当前用户对项目列表中当前项目的访问权限。
Copy User Rights 复制其它用户的权限到用户列表中的当前用户,界面见图 5-6: 图 5-6 Lock SourceSafe Database 如果您需要对数据库进行存档、备份或运行 VSS 工具时,需要执行该命令对 VSS 数据库进行锁定。
锁定数据库后,所有用户将不能登录到该数据库中。
Clean Up Temp Directory 删除 VSS 临时文件夹内容。
VSS 在运行时会在临时文件夹中存放临时文件,在正常退出时删除这些临时文件;如果遇到意外情况系统非正常退出,VSS 就会在临时文件夹中留下一些临时文件,这些文件是垃圾,通过 Clean Up Temp Directory 命令可以清除这些临时文件。
Create Database 创建 VSS 数据库,见图 5-7: 图 5-7 在编辑框中输入或按ltBrowsegt按钮选择数据库需要存放的位置,可以是服务器上的某个共享目录,也可以是任何客户机上的某个共享目录或本机目录。
Option VSS 选项设置,设置的选项将影响当前数据库用户列表中的所有用户。
常用的选项有: Allow Multiple Check Outs: 通常,一个文件一次只能被一个用户签出,如果选择这个选 项,VSS 将允许一个文件被多个用户同时签出,在多个用户签入时执行合并。
通常,该选项 Use network name for automatic user login: 如果选中这个选项,在 VSS 登录时自动取 WINDOWS 系统登录的用户名当做 VSS 的用户名。
Enable project security: 如果选中这个选项,VSS 可以对每个项目设置不同的访问用户 及访问权限,否则,项目的访问权限功能无效。
Font 设置用户列表字体。
Archive Projects 存档项目。
选择一个项目,并在指定的文件夹中生成该项目所有信息的压缩存档文件。
Restore Projects 恢复项目。
把一个存档的项目恢复到当前数据库中。
六、 使用VSS Explorer VSS Explorer 用于对项目和文件的管理,也是项目组普通成员使用 VSS 的界面。
启动后,界面见图 5-1。
其中界面左边是当前数据库包含的所有项目的树状列表,类似于操作系统的一个逻辑盘的目录结构。
最顶端是根项目,根项目只能有一个,而且不能被修改或删除。
在根项目下可以有多个项目,每个项目又可以有多级子项目。
界面右边是项目列表中当前项目包含的所有文件,列出文件名、签出状态、签出用户、签出时间或最后版本签入时间、签出的目标文件夹。
如果文件名前的图标为 ,表示该文件被进紧跟着的 User列指定的用户签出,Date-Time 列显示当前文件被签出的时间;如果文件名前的图标为 ,表示该文件没有被任何用户签出,Date-Time 列显示当前文件最后版本形成时间。
如果文件为共享文件,文件名前的图标为 。
Open SourceSafe Database CtrlP VSS 允许建立多个数据库,通过 Open SourceSafe Database 命令打开一个其中的一个数据库(一个 VSS Explorer 实例一次只能打开一个数据库,打开另一个数据库将关闭当前数据库),打开的数据库就成为当前数据库,其项目列在 VSS Explorer 左边的项目列表中,同时您可以对其中的任意项目进行操作。
界面见图 5-3。
Add Files CtrlA 在当前项目下添加文件或子项目,界面见图 6-1: 图 6-1 右边的驱动器列表和文件夹列表可以定位需要添加的文件所在的路径; 左边文件列表中列出当前文件夹下包含的所有文件,文件可以多选;File Name 编辑框中列出选择的所有文件,各文件之间用空格分开。
ltAddgt按钮把选择的文件添加到 VSS 当前数据库的当前项目上。
如果在选择ltAddgt按钮前光标停留在文件夹列表上,选择ltAddgt按钮后界面下部将出现复选框 Recursive,选择选中该复选框,系统在添加当前文件夹的所有文件的同时,也将把该文件夹下的所有子文件夹当作当前项目的子项目,并且自动生成这些子项目,其名称就是子文件夹的名称。
通过这个功能,您可以把一个开发项目的目录结构与对应 VSS 项目的项目结构一一对应,同时也能快速建立该开发项目的 VSS 项目。
Create Project 在当前项目下建立一个子项目,界面见图 6-2,您只要输入子项目名即可。
图 6-2 Set Working Folder CtrlD 因为VSS项目是给多个不同的用户共享访问的,而每个用户对该项目在本机上都可能有不同的存放路径,因此,对每个登录的用户,都需要通过该命令设置每个项目存放到本机的目录。
界面见图6-3,您可以在Name编辑况中输入目录,或通过Drivers、Folders列表框中选择一个目录。
图 6-3 Delete Del 删除当前项目或选择的文件。
如果光标在项目列表上,删除的是当前项目,包括其包含的所有文件及子项目;如果光标在文件列表上,删除的是选择的文件(文件可以多选)。
Rename F2 对当前项目或文件改名。
Property 显示当前项目或文件的包含的信息(如文件类型、最新版本号等),如果某文件同时被其它项目共享,在 Links 页将列出该文件被连接的所有项目名称。
Create ShortCut Label 通过这个命令,您可以为某个项目(包括其包含的所有文件及子项目)定一个版本。
执行该命令后,系统将弹出一个对话框,见图 6-4。
图 6-4 ,Comment 栏中可以输入 在 Label 编辑框中输入标签名(可以是任意字符,一般按时间或用途)备注信息。
按ltOKgt按钮后,VSS 将对该项目及其包含的所有子项目及文件都生成一个该 Label 内容的版本。
这样,以后您如果需要得到项目的该版本时,就可以在项目的 Show History 命令中通过选择该 Label 内容得到项目的该版本文件。
Move 该命令用于把当前项目移到指定的项目下,界面见图 6-5。
移动后,当前项目将成为选择项目的子项目。
图 6-5 Sort 对 VSS Explorer 主界面的文件列表中的文件显示进行排序,排序字段可以按文件名Name、文件类型Type、签出用户User、签出日期Date及签出的工作目录CheckOut Folder。
排序操作也可双击文件列表中的某列的列头来进行。
WildCard Search CtrlW 列出与指定文件匹配符相匹配的所有文件,见图 6-6。
图 6-6 在 WildCard 编辑框中输入查找文件的匹配符;在 Search Area 单选框中选择查找的范围。
当选择ltOkgt按钮后,VSS 进入过滤状态,文件列表将列出与匹配符相匹配的所有文件。
结束搜索执行 Cancel Search 命令。
Status Search CtrlS 列出与签出状态相匹配的所有文件,见图 6-7。
图 6-7 在 在 Status Search 单选框中选择是显示所有签出文件还是被指定用户签出的文件; Search Area单选框中选择查找的范围。
当选择ltOkgt按钮后,VSS 进入过滤状态,文件列表将列出与匹配符相匹配的所有文件。
结束搜索执行 Cancel Search 命令。
Cancel Search CtrlQ 结束搜索过滤,文件列表还原为显示当前项目的所有文件。
Refresh File List F5 刷新当前项目及文件列表。
因为在多用户的环境下,其它用户可能对项目或文件作了调整,为了显示当前数据最新内容,执行该命令。
退出 VSS Explorer 后再进入也能显示当前数据库最新内容。
Get Latest Version CtrlG 取当前项目或选择文件的最新版本到工作目录,见图 6-8。
图 6-8 如果光标在项目列表上,对话框中将出现 Recursive 复选框;如果选中该复选框,当前项目及其包含的所有子项目的最新版本文件都将取到对应的工作目录上,否则,只有当前项目的最新版本文件取到对应的工作目录上。
Make writable 复选框如果选中,得到的最新版本文件状态将为可读写,否则,没有签出的文件得到最新版本上状态为只读。
注意:该命令为常用命令,为了保持工作目录上的项目为最新版本(因为可能有多人同时针对不同文件进行开发),经常需要执行该命令。
Check Out CtrlK VSS 协调各项目组成员对项目的共同开发,避免多人对同一文件的同时修改而造成文本内容的冲突,就是通过 Check Out、Check In 来实现。
VSS 是这样来控制文件的修改权限的: 如果您需要修改一个文件内容,必须执行签出Check Out命令,系统对该文件作签出标志; 只有签出该文件的用户才能修改文件的内容; 在同一时刻一个文件只能由一个用户签出,也就是说,当一个用户签出某一文件后,该文件 就不能被其它用户再签出,以避免多人同时修改一个文件;当然,VSS 也能设置成一个文件 被多人同时签出,我们在项目管理时不建议这样做。
用户对签出的文件修改完毕后,必须执行签入Check In命令,签入命令把修改后的文件提 交到 VSS 数据库中,VSS 同时对该文件作修改变化记录也即保存当前版本与上一版本的内 容差异,同时生成一个新的版本。
签入成功后,清除签出标志,这样,其它的用户才可能 再签出该文件作进一步的修改。
VSS 控制工作目录上的文件能否被修改是通过设置文件的只读属性来进行的。
如果某个文件 没有被任何用户签出,在任何用户的工作目录上,该文件属性都置为只读。
如果某个用户签 出某个文件,该文件在该用户的工作目录上取消只读属性,设为可读写。
这种修改是执行 VSS 相应命令时由 VSS 自动来进行的。
因此,如果用户不执行签出Check Out命令,而在 操作系统中自行修改了文件的读写属性后再修改文件内容,将是很危险的,有可能造成修改 内容的丢失,因为 VSS 在签出文件时,将用 VSS 数据库中的最新版本文件来覆盖工作目录上 的同名文件。
注意:为了安全起见,强烈建议对文件的修改必须执行签出命令后再进行。
如果该文件已被其他成员签出,如果允许,通知他签入后您再签出修改。
Check In CtrlU 用户签出一个文件修改完毕后,必须执行该命令,签入命令把修改后的文件提交到 VSS 数据库中,VSS 同时对该文件作修改变化记录也即保存当前版本与上一版本的内容差异,同时生成一个新的版本。
签入成功后,清除签出标志,这样,其它的用户才可能再签出该文件作进一步的修改。
Undo Check Out 如果用户签出一个文件修改完毕后,不想把修改后的内容提交到 VSS 数据库中(作废修改内容),可以执行该命令。
该命令将清除签出标志,同时将提示是否用 VSS 数据库中的最新版本内容替换工作目录上的同名文件,也就是作废修改内容。
因为该命令清除了签出标志,执行该命令后其它用户就可以签出该文件。
Share VSS 的项目结构与操作系统的目录结构有一点不同的地方就是,在 VSS 中,一个文件可以被同时多个项目共享也就是一个文件可以出现在多个项目中,在任一项目中被签出修改都将反映到其它项目中,而操作系统的一个文件则不同被多个目录同享。
执行该命令后,界面见图 6-9; 图 6-9 您可以在文件选择列表中选择文件,选择ltSharegt按钮后,选择的文件将共享到当前项目(也就是执行该命令前光标所在的项目)下。
如果在选择ltSharegt按钮前光标停留在界面右边的项目列表中,项目列表中的亮条光标所在的项目将整个作为一个子项目共享到当前项目下。
共享完毕后,被共享的文件将在不同的项目中出现,在任一项目中签出该文件,签出标记也将出现在其它包含该文件的项目的文件列表中。
Branch 该命令用于共享文件,当在共享文件上执行该命令时,VSS 将打断共享,为该共享文件独立生成一个文件拷贝。
这样,对该文件所作的修改将不会影响到它的原先共享文件上,以免其它项目组对共享文件的修改后引起的 Bug 带到本项目中。
Merge Branch 当共享文件打断后,各个打断后生成的文件内容(只能对文本文件)还可以进行合并操作,不过,合并后还是多个独立文件,不是生成新的共享文件。
当执行该命令时,界面如图 6-10,选择需要合并的分支文件,然后选择ltMergegt按钮。
图 6-10 Show History 显示当前文件的历史信息,界面见图 6-11。
图 6-11 您可以选中 Include Labels 复选框,使得历史信息列表中包含通过 Label 命令定义的标签信息。
如果还选中 Labels Only,则历史信息列表中只列出通过 Label 命令定义的标签信息。
您还可以通过填写 From、To 编辑框,使得在历史信息列表中只显示指定版本号范围的信息。
如果在 User 编辑框中输入用户名,历史信息列表中将列出该用户生成的版本信息。
选择ltOKgt按钮后,系统将弹出如图 6-12 的对话框。
图 6-12 在历史信息列表中,如果版本.