日志 > 软件编程
![]()
VSS主要操作说明
![]() 1.1 服务器端演示的操作: ? ? ? ? ? 客户端演示的操作: ? ? ? ? ? ? ? 1.1.1 1. 启动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 Check Out/Check In 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 选择所要建PROJECT的父PROJECT,选择菜单File或右键菜单中的Create Project命令。 2. 选择所要放置文件的父PROJECT,选择菜单File或标题栏上的Add Files命令,选择硬盘上的文件添加;若选择整个目录,通过选择对话框中Recursive,则可以将整个目录的结构读到VSS库中(包括所有子目录和文件)。 选中目录或文件,选择菜单File或标题栏上的Delete Files(Project)命令,进行删除。若不选择删除对话框中的Destroy permanently(Destroy权限),则数据库中还留有备份,通过父PROJECT的属性对话框还能将删除的文件恢复。 3. 前面介绍了,所有的文件存在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. 取得文件或目录的VSS拷贝。选择菜单SourceSafe或右键菜单中的Get last version,可在指定的工作路径中得到文件的拷贝。(支持目录的get操作) 5. SourceSafe可以创建一个高层的报告:一个项目中所有签出文件的列表。这一特性应用在当前项目中循环包含所有子项目时功能比较有用。VSS检查每个相关项目中的每一个文件并生成签出文件的列表。你可以立即知道是否可以进行连编(或如果你不能时该找谁)。选择菜单View/Search/Status Search命令,选择生成报告的范围。 6. 所有版本控制系统都有文件历史记录报告,记录每个文件的操作历史,VSS还支持通过项目本身生成报告,允许浏览项目里所有修改的操作。节省了检索修改信息的时间。选择菜单Tools或右键中的Show Histroy 7. 通过检索项目的历史记录,Visual SourceSafe允许你快速重新创建整个应用程序的前一版本。这将帮助你解决在前一版本中报告的错误,并确认它们在当前开发的新版本中已解决。 采用Label的方法实现。选择一个PROJECT或文件,选择菜单Files或右键菜单中的Label命令,生成一个由你指定字符串内容的Label(如:version 1.0)。在此基础上你可以继续对文件进行操作,可能会再生成其它版本,但你可在历史记录窗口中选择Label(version 1.0),Get last version,就可得到原来的版本内容了 ![]() |
![](https://i-blog.csdnimg.cn/blog_migrate/7a9f8c2f833206445a63e9b8dc5b1286.gif)
/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+'引用内容:'; }); 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>'+c+'
了解各界捐助动态及捐赠渠道,请点击此处。
共0篇评论,第1页/共0页
批量删除 取消批量删除
共0篇评论,第1页/共0页