VSS主要操作说明

日志 > 软件编程
设置置顶 | 编辑 | 删除

VSS主要操作说明

发表于:2008年5月4日 16时47分33秒阅读(3)评论(0) 本文链接:http://user.qzone.qq.com/169188811/blog/1209890853
VSS主要操作说明
1.1      演示介绍 VSS的演示主要涉及两个部分:服务器端和客户端。
服务器端演示的操作:
?
         创建并打开一个VSS数据库;
?
         为新创建的数据库建立用户;
?
         为建立的用户设置用户权限;
?
         备份、恢复数据库信息;
?
         其他;
客户端演示的操作:
?
         在新建的数据库中创建项目文件夹(PROJECT);
?
         在PROJECT中添加、删除文件(彻底删除权限);
?
         CHECK OUT、CHECK IN操作;
?
         GET LAST VERSION操作;
?
         创建CHECK OUT的高层报告;
?
         查看文件历史记录;
?
         LABEL的设置和使用;
1.1.1      服务器 VSS6.0的配置和管理均需由VSS管理员来完成。他的主要工作有:
1.
         为整个项目创建一个VSS数据库:
启动Visual SourceSafe6.0 Admin,选择下拉菜单Tools中的Create Database…菜单项,在弹出的对话框中选择新数据库的路径,然后点击OK按钮,系统将完成创建工作。
打开指定数据库:
选择下拉菜单users中的Open SourceSafe Database,在弹出的对话框的数据库列表中选择要打开的数据库,若打开的对象不在列表中,选择Browse..找到数据库的位置,选择相应的srcsafe.ini文件,输入自定的数据库名,点击打开即可。系统会提示密码验证。
2.
         为指定的数据库建立用户:
首先需要打开该数据库,选择菜单项Add User…输入用户名和口令,可通过其他菜单项对用户进行编辑、修改、删除等操作。
3.
         为建立的用户设置用户权限:
新建立的数据库的权限设置信息是隐藏的,需选择Tools/Options/Project Security中的Enable Project Security命令显示项目权限设置信息。
点击下拉菜单Tools/Right by Project…,即可针对所选择的项目设置相应用户的权限。
用户权限包括:Read、Check Out/Check In、Add/Rename/Delete、Destroy。
Read拥有此权限的用户可查看VSS库中相应文件的内容,并可进行Get的操作,但不能进行更改操作 。
Check Out/Check In拥有此权限的用户具有对库中相应的文件进行更新的权力, 可进行Check Out、 Check In和Undo Check Out的操作。通常该权力应指派给相应的项目开发人员或质量保证人员。
Add/Rename/Delete拥有此权限的用户对库中相应的文件夹具有添加、删除 、重命名的权力,并可为文件、文件夹填写标签。通常该权力应指派给项目经理和特定的开发人员或质量保证人员。
Destroy拥有此权限的用户可对相应的文件/文件夹进行彻底删除、版本反转的操作。通常该权力应指派给项目经理或库管理员。关于彻底删除、版本反转的操作我将在介绍客户端的使用时再进行介绍。
权限的设置是带有继承性质的,如你设置了某个用户在某个目录的权限,那么这个用户对这个目录下的所有子目录都有相同的权限,所以应该进行层层设置。
4.
         备份、恢复数据库信息:
为了防止数据库内容的丢失,应该定期对数据库进行备份,一般想备份的操作,就是找到要备份的数据库目录,复制一把。VSS提供一个功能可以将数据库的信息(不包括用户信息)压缩存至一个后缀为ssa的文件中。
选择Archive/Archive Projects命令,在对话框中选择要备份的PROJECT(项目或单个目录),在Archive Project,Step 2 of 3窗口中选择你要进行的操作,Browse…选择存档文件的放置位置,选择存储的内容(存储所有数据或选择特定版本),进行备份。
备份和恢复功能不仅可以运用在信息的备份上,还可用于两个数据库之间信息的传送。
恢复数据库的信息的功能:选择Archive/Restore Projects命令选择存档文件打开,选择要恢复的数据库内容和目标数据库位置,进行恢复。
5.
         其他
Lock SourceSafe Database…
Clean up Temp Directory…

1.1.2      客户端 1.          在新建的数据库中创建项目文件夹(PROJECT):
选择所要建PROJECT的父PROJECT,选择菜单File或右键菜单中的Create Project命令。
2.
         在PROJECT中添加、删除文件(彻底删除权限):
选择所要放置文件的父PROJECT,选择菜单File或标题栏上的Add Files命令,选择硬盘上的文件添加;若选择整个目录,通过选择对话框中Recursive,则可以将整个目录的结构读到VSS库中(包括所有子目录和文件)。
选中目录或文件,选择菜单File或标题栏上的Delete Files(Project)命令,进行删除。若不选择删除对话框中的Destroy permanently(Destroy权限),则数据库中还留有备份,通过父PROJECT的属性对话框还能将删除的文件恢复。
3.
         CHECK OUT、CHECK IN操作:
前面介绍了,所有的文件存在VSS数据库的项目中,开发组成员不能在VSS中的主备份文件上工作(除了检查和版本对比等特殊情况外)而是VSS为每个成员在各自的工作目录下提供一个拷贝以供工作。工作目录就是用户真正对项目文件进行调试修改的地方,当用户Checkout或提取一个文件时,VSS将该项拷贝到用户的工作目录下,当用户修改了该文件并将其Checkin或提交时,VSS再将它从用户的工作目录拷回到VSS 的数据库中。
check out:选择菜单SourceSafe或右键菜单中的Check out命令,确定你的工作路径,进行check out操作,可见VSS库中相关文件被置了check out标志,表明当前该文件被人签出正在进行修改;再看你设置的工作路径中已有了新check out出的文件。(Don’t get local copy)
check in:选择被签出的文件或目录,选择菜单SourceSafe或右键菜单中的check in命令,可将修改后的文件放入VSS库中。(Remove Local Copy)
check out和check in支持整个结构的读取。
4.
         GET LAST VERSION操作:
取得文件或目录的VSS拷贝。选择菜单SourceSafe或右键菜单中的Get last version,可在指定的工作路径中得到文件的拷贝。(支持目录的get操作)
5.
         创建CHECK OUT的高层报告:
SourceSafe可以创建一个高层的报告:一个项目中所有签出文件的列表。这一特性应用在当前项目中循环包含所有子项目时功能比较有用。VSS检查每个相关项目中的每一个文件并生成签出文件的列表。你可以立即知道是否可以进行连编(或如果你不能时该找谁)。选择菜单View/Search/Status Search命令,选择生成报告的范围。
6.
         查看文件历史记录:
所有版本控制系统都有文件历史记录报告,记录每个文件的操作历史,VSS还支持通过项目本身生成报告,允许浏览项目里所有修改的操作。节省了检索修改信息的时间。选择菜单Tools或右键中的Show Histroy
7.
         LABEL的设置和使用:
通过检索项目的历史记录,Visual SourceSafe允许你快速重新创建整个应用程序的前一版本。这将帮助你解决在前一版本中报告的错误,并确认它们在当前开发的新版本中已解决。
采用Label的方法实现。选择一个PROJECT或文件,选择菜单Files或右键菜单中的Label命令,生成一个由你指定字符串内容的Label(如:version 1.0)。在此基础上你可以继续对文件进行操作,可能会再生成其它版本,但你可在历史记录窗口中选择Label(version 1.0),Get last version,就可得到原来的版本内容了
请选择道具
温馨提示:点击验证码输入框,以获取验证码
请输入验证码:
      
<script type="text/javascript"> //$1  于 $2 发表的评论
/x02").replace(//[//quote/]/g,"/x01"); for(var i=0;i<2;i++) s=s.replace(//x03([^/x03/x01/x02]*?)/x02([^/x03/x01/x02]*?)/x01/g, function(a,b,c){ return '
'+b+'引用内容:

'+c+'
'; }); return s.replace(/[/x03/x02/x01]/g,""); } var bLoaded = false; function checkMsgReply(obj) { if(!bLoaded) top.includeJS('/qzone/blog/script/common.js', function(){bLoaded=true;checkMsgReply(obj)}, document); else checkReply(obj); if(obj.checked){ MAX_COMMENT_LEN = 500; } else { MAX_COMMENT_LEN = 4500; } _fontCount = MAX_COMMENT_LEN; //字数限制 if(!window.sendCommentEditor) return; if(sendCommentEditor.editorArea.editMode == 1) toCountFont(sendCommentEditor.id, "html"); else toCountFont(sendCommentEditor.id, "text"); } function showMsgLeftCnt() { if(!bLoaded) top.includeJS('/qzone/blog/script/common.js', function(){bLoaded=true;showMsgLeftCnt();}, document); else showLeftSMS(); } function selectBlogPaper() { if(checkLogin() <= 10000) { top.showLoginBox("mall"); return; } if(!!top.g_JData["blogContent"]) { if(parent.g_iLoginUin == parent.g_iUin) { location.href="/qzone/newblog/blogeditor.html?paperid=" + parent.g_JData["blogContent"].data.lp_id + "&paperstyle=" + parent.g_JData["blogContent"].data.lp_style + "&paperdialog=1"; } else { parent.location.href="http://user.qzone.qq.com/" + parent.g_iLoginUin + "/addNewBlog?paperid=" + parent.g_JData["blogContent"].data.lp_id + "&paperstyle=" + parent.g_JData["blogContent"].data.lp_style; } } else { top.showMsgBox("抱歉,暂时无法获取该信纸信息!", 1, 2000); } } /** * 批量删除中选择全选 */ function selectAllComments(bChecked) { var oList = document.getElementsByName("commentCheckBox"); if(oList.length==0) return; for(var i=0; i 0){ dalert(null, parent.g_XDoc["delBatchReply"].xml, 2000); delete parent.g_XDoc["delBatchReply"]; return; } dalert(null, parent.g_XDoc["delBatchReply"].xml, 2000, 2); contentProperty.totalCommentNumber -= nDeleteCnt; //清理cache with(contentProperty){ delete parent.g_XDoc["blogRoot"].contentHSList[currentBlogid]; pageList = {}; pageIndexMap = []; currentCommentPage = lastCommentPage = (!contentProperty.nowaPage)?0:nowaPage[3]; parent.g_XDoc["blogRoot"].replyNumUpdateHSmap[currentBlogid] = totalCommentNumber; parent.isRefreshTop = true; if(currentCommentPage == 0) { setTimeout(contentInit, 1000); } else{ var tp = Math.ceil(totalCommentNumber/PAGE_COMMENT_NUM); var num = totalCommentNumber%PAGE_COMMENT_NUM; if(num==0 || currentCommentPage10000 && top.g_iLoginUin!=top.g_iUin) { $("msgboardSelfReply").style.display = ""; $("blogSelPaper").title = "我也要使用此信纸写日志"; } setTimeout(contentInit,50); //]]> </script>  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值