《配置管理系统.ppt》由会员分享,可在线阅读,更多相关《配置管理系统.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、配置管理系统配置管理系统TortoiseSVNTortoiseSVN摘要摘要为什么我们需要配置管理?什么是svn和TortoiseSVN?软件安装名词解释图标重载SVN的工作模式TortoiseSVN的功能演示项目目录设置人员分配与组织结构为什么我们需要配置管理为什么我们需要配置管理?代码回归多人协作开发版本发布发布新版本时,不中止开发进程有特殊版本时,可以创建分支不同版本具有相同的bug时,进行修复追踪变化(trac)自动构建(cruisecontrol)什么是什么是svn svn 和和 TortoiseSVN?TortoiseSVN?svn(Subversion)是个自由、开源的版本控制系
2、统svn的版本库可以通过网络访问TortoiseSVN是Subversion在Windows操作系统上的图形客户端程序,开源、免费软件安装软件安装需要有管理员权限安装完毕后,在“资源管理器”里点击右键,会有如下菜单出现。名词解释名词解释版本库(Repository)的概念版本库是svn文件共享的核心,它储存所有的数据。按照文件树形式存储数据包括文件和目录。工作副本(Workingcopies)的概念检出工作副本的概念你的版本库就像是一台时间机器,它记录了所有提交的修改,允许你检查文件或目录以及相关元数据的历史。提交修改的概念可以理解为上传修改文件的记录,就是把工作副本里面修改过的文件的记录上传
3、到版本库里面。图标重载图标重载SVNSVN的工作模式的工作模式协同工作的两种模式“copy-edit-merge”(Subversion默认的模式)适用于纯文本文件的协同工作,TortoiseSVN自动合并不同成员对同一文件的修改,如果修改有冲突,需要人工取舍。此模式适合软件开发这种工作。“Lock-Modify-Unlock”(锁模式)我们采用这种模式适用于纯文本文件及二进制文件的协同工作。比如dwg,mcd,doc,ppt,xls等文件格式。这种模式适合工程设计人员的合作。锁模式锁模式某文件已经被同学甲锁定,此时同学乙也在自己的计算机上试图锁定该文件,会发生什么情况?(会有提示:该文件已被
4、同学甲锁定)某试衣间已经被同学甲锁定,此时同学乙也试图进入此试衣间,会发生什么情况?(试衣间内有人,请稍候)TortoiseSVN会检测版本库中的该文件的版本是不是比WorkingCopy的新,如果比Workingcopy新,那么只有用户更新了Workingcopy才能对其成功实施锁定。这就保证了任何一个成员对文件修改时,总是在最新版本基础上进行修改。当某成员试图锁定某文件时当某成员试图锁定某文件时提交的艺术提交的艺术采用“Lock-Modify-Unlock”这种模式进行协同工作,需要多进行的两个步骤:GetLock(锁定文件)Commit(提交,提交成功后程序自动把锁释放掉)合理选择提交频
5、度和时机两次提交之间尽量进行同一类操作,比如,统改图层后提交一次,统改标注线型后再提交一次。目的:一旦业主要求有反复,我们也很容易把以前工作成果从库中提出来,减少返工。建议一小时左右提交一次。养成按时提交的习惯,试衣间是公共财产,文件也是。有人总在试衣间咋办有人总在试衣间咋办如果有人在试衣间内土遁了或者晕倒了,我们该怎么办?当然是救人要紧。砸锁(Stealthelocks)TortoiseSVNTortoiseSVN的功能演示的功能演示1.Checkout检出检出工工 作作 副副 本本2.Commit修改文件后提交修改文件后提交3.Update从服务器端更新本地文件的版本从服务器端更新本地文件
6、的版本4.GetLock/ReleaseLock 对文件的加锁解锁操作对文件的加锁解锁操作5.Add/Delete/Rename增加增加/删除删除/重名文件或文件夹重名文件或文件夹6.Updatetorevision 更新至版本更新至版本7.Showlog显示日志显示日志8.RevisionGraph 版本示意图版本示意图9.Revert 取消上一次的操作(只针对客户端,服务端不做改动)取消上一次的操作(只针对客户端,服务端不做改动)10.Branch/Tag分支和标记分支和标记11.其它功能1.C1.Checkout heckout 检出工 作 副 本初次检出到本地文件夹时,在本地新建一个空
7、文件夹,作为checkout项目的目录,这相当于拷贝,此文件夹目录相当于你本地机器一个普通的目录,为了得到工作拷贝,具体操作如下图:check out check out 和和exportexport的区别的区别checkout方式获得文件后,文件仍处于SVN版本控制中export导出当前版本的数据,文件脱离SVN版本控制2.Commit 2.Commit 修改文件后提交(修改文件夹中的内容后文件夹会自动变成带有红色标记)大家可以发现,文件/文件夹已经发生了变化,由之前绿色的勾变成了红色的感叹号,这表明该文件已经发生了更改,变的与服务器的文件不一样了log message log messag
8、e 信息填写规则信息填写规则好的logmessage和糟糕的logmessagelogmessage主要记录的是每次的修改内容。建议把一些重要数据、关键操作写到logmessage中,比如“根据管道工程师山姆同志在2007年7月4日的邮件内容修改结构布置”,可以顺便把山姆同志的邮件内容拷贝到logmessage中。注:修改人和提交时间由软件自动记录,无需人工写入logmessagegoodlogmessagenotgood移动右上角架子标注由原来的16改为1改标注增加注释,说明设备V3000的参数出处增加说明原BOSEL69-111/2改为72-11/2改标高修改最南侧和最北侧的W12的梁与T
9、OWER中心线的距离为11修改5挑台的挑梁为W16x57改距离3.Update 3.Update 从服务器端更新本地文件的版本如果服务器上的版本库已经是第7版本,自己本机的版本还是第1版本。这时你可以更新自己本地的版本为第7版本。4.Get Lock/Release Lock4.Get Lock/Release Lock 对文件的加锁解锁操作当我们同时修改一个项目下的文件时,需要锁定文件(可以是一个文件夹或者具体的一个页面)这样可以避免冲突。加锁:加锁:解锁解锁:5.Add/Delete/Rename 5.Add/Delete/Rename 增加/删除/重名文件或文件夹6.Update to
10、revision6.Update to revision 更新至版本7.Show log 7.Show log 显示日志显示文件库中此目录和目录下文件的日志信息,包括各种操作我们可以看到文件版本的一些信息,还有文件做了什么操作。若想知道前后2个版本有什么差别,更改了哪些东西,选中文件,如上图。右键,选择Comparewithworkingcopy8.Revision Graph8.Revision Graph 版本示意图9.Revert 取消上一次的操作取消上一次的操作注意:只针对客户端,服务端不做改动10.Branch/Tag10.Branch/Tag 分支和标记分支和标记注:在想要分支的目
11、录下或对单个文件做如下操作:11.11.其它功能其它功能Import导入Repo-browser版本库浏览器Relocate重定位Merge合并-解决冲突Blame追溯Diff差异Merge Merge 合并合并第一步:将工作副本切换到主干上:这一步很重要,当前的工作副本的是要合并的目的地第二步:在主干根目录文件夹上右键,如下图,选择最后一项这是最重要的一步,需要注意的地方有:1.起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,看起来不合理,其实细想却是合理的,这个是所谓的合并点,也就是分歧开始的地方)2.结束URL:选择要合并的分支的URL,也就是所有的分歧所在。3.起始和
12、结束的版本:起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。到这里,下面就顺理成章了,如果有冲突的话,手工解决冲突,提交就可以了。我的理解:将分支合并到主干上,首先需要在主干的工作副本下进行,合并的范围是从主干的上次合并的版本开始(FROM)到分支上最新的版本结束(TO),如果是第一次合并,则从主干创建分支的版本开始,所以每次合并好做好说明,否则忘记了,下次再合并就有点麻烦,其实,应当尽量避免一个分支合并多次,分支的作用一般为了解决bug等,一旦bug对应结束了,分支
13、的使命就结束了,以后再出现其他的问题,应当重新建立分支,这样就不会出现多次合并的问题了。合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里。如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主干上的改动,并且一定要注意,合并的起始位置URL一定和当前的工作副本的URL是相同的。项目目录设置项目目录设置DocumentsProgramTrunkBranchReleaseTools人员分配与组织结构人员分配与组织结构 项目负责人配置管理员(2人)开发人员软件质量保证员(wt wei)测试人员The end!Thank you!The end!Thank you!