




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SVN环境搭建与使用,课程介绍,学完本门课程,你能够: 自己搭建SVN开发环境 利用SVN管理系统数据资源 利用SVN完成基于软件项目开发的管理和部署 在团体及小组开发中利用SVN完成代码的版本控制,本课案例,搭建SVN开发环境,完成SVN资源库配置 使用SVN创建标准软件研发目录 使用SVN完成数据导入、导出、检出、提交、更新,本课目标,理解SVN的作用及重要性 掌握搭建SVN服务器并完成资源库配置 掌握标准软件研发目录结构的构建 掌握SVN中数据导入、导出、检出、提交与更新等操作 理解与领悟提交与更新的核心执行流程,会处理提交与更新过程中发生的冲突,5,SVN介绍,SVN(Subversion)是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件 SVN有如下优点: A、管理方便,逻辑明确,符合一般人思维习惯 B、易于管理,集中式服务器更能保证安全性 C、代码一致性非常高,6,SVN服务安装,1、双击svn-1.4.6-setup.exe文件,安装SVN服务软件(安装目录自行选择) 2、安装好之后选择一个适合作为资源库管理的目录(如:F:/SVNRoot),这个目录将作为SVN的根目录 3、打开命令行控制窗口并切换到该目录下,然后执行以下命令: F:/SVNRootsvnadmin create scxh 注:scxh是资源库(仓库)的名字,可以自己定义;该命令执行之后会在F:/SVNRoot文件夹之下自动创建一个名叫scxh的目录,以后提交的数据将被压缩存储在该文件夹下的db/revs文件夹之下 4、打开仓库文件夹(scxh)下的子文件夹conf,配置svnserve.conf、passwd、authz三个配置文件,配置如下:,SVN仓库配置,1、svnserve.conf配置文件: anon-access=none #匿名用户不能访问SVN,它有三种取值:none/read/write auth-access=write #授予访问权限者可以读和写 password-db=passwd #指定密码文件位置,默认为当前目录的passwd文件,可以使用绝对路径指定 authz-db=authz #指定权限控制文件位置,默认为当前目录的authz,可以使用绝对路径指定 realm=Lenovo_liyongfu #指定登录时弹出的验证域信息,你也可以不用设定它,8,SVN仓库配置,2、passwd配置文件: users admin = admin #用户名=密码 root = 123456 liyongfu=123456 lixiang=lixiang ligang=ligang lixiaolong=lixiaolong,SVN仓库配置,3、authz配置文件: groups #定义组 admin = admin,root #组名=用户名1(或组名1),用户名2(或组名2) super=liyongfu,lixiang normal=super,ligang,lixiaolong scxh:/ #定义资源库的总访问权限 admin = rw #组名(用户名不用加)=rw(三种取值;r:只读;w:只写;rw:读和写) * = #除了上面分配的权限以外其它所有用户对该资源无任何访问权限 scxh:/chanel #定义资源库下chanel子目录的访问权限 super = rw #super组成员对该资源有读写权限 normal=r #normal组成员对该资源有只读权限 * =r #除了上面分配的权限以外其它所有用户对该资源有只读权限 注意:权限是递归的,如果某个用户对A目录有读写权限则该用户对A目录下的所有子目 录及其深层次子目录都有读写权限,SVN服务注册与服务启动,1、使用sc create命令注册SVN服务,具体命令使用格式可以参照installSVN.bat文件,如果是本机SVN可以设置IP为127.0.0.1回环地址,如果是远程SVN则设置IP为真实服务器的IP地址 2、取消服务注册: sc delete svnName 或 双击uninstallSVN.bat文件 注:svnName是SVN注册时所取的服务名字 3、启动SVN服务: sc start svnName 或 net start svnName 4、停止SVN服务: sc stop svnName 或 net stop svnName,SVN客户端安装,1、SVN采用C/S模式来完成SVN数据资源的版本管理,双击TortoiseSVN-1.5.2.13595-win32-svn-1.5.1.msi文件安装SVN客户端,SVN客户端安装好之后将自动将SVN相关功能关联到右键菜单中 2、SVN资源管理器的访问 在任何一个地方点击鼠标右键选择TortoiseSVNRepo-browser在弹出的对话框地址栏上输入你要访问的SVN地址,该地址以svn:/开头(SVN协议),格式为:svn:/ip:3690/scxh/ (scxh为你自己创建的仓库名字) 3、SVN资源管理器操作 使用具备scxh资源库管理权限的用户登录到SVN服务器,在需要导入数据的特定目录下点右键选择Create folder可以在SVN上创建一个文件夹,选择delete可以删除一个文件夹(包括非空文件夹),双击某个文件夹可以在右侧查看该文件夹下的子目录和文件列表,软件研发之标准SVN目录结构,1、在软件开发环境中,有一套成熟的标准SVN目录结构,那就是在每个仓库下面都有trunk、branches、tags三个目录,trunk目录称为主干,它是软件开发中用于保存主版本的目录,branches目录称为分支目录,它是软件开发中用于保存模块分支的目录,同时也是bug的补丁目录,tags是软件发布之后用于归档阶段(里程碑)版本的目录 2、软件开发流程有两种,第一种是在主干上进行开发、测试、打包、发布(上线)、归档。这种模式中如果线上存在bug则立即从归档中拷贝一个副本到分支进行补丁修正,最后合并到原主干中;另一种是按业务模块在分支上进行开发,开发完成之后合并到主干进行测试、打包、发布(上线)和归档。该种模式下如果线上存在bug则立即在分支上调整相应模块的bug,然后再转入原主干进行合并,软件研发之标准SVN目录结构,SVN数据导入,步骤一:在SVN服务器上创建需要接收数据的SVN目录 在任何一个地方点击鼠标右键选择TortoiseSVNRepo browser登录SVN在需要导入数据的特定目录下点右键选 择Create folder新建一个用于接收本地数据的目标SVN目录,退出 SVN界面 步骤二:将本地数据上传到SVN服务器目录下 右键点击需要上传数据所在目录,在弹出菜单中选择TortoiseSVN Import,在弹出框的URL地址栏上输入数据导入到的目标SVN路径 并点击确定完成数据导入操作 注意: 操作是将选定目录中的数据(不包括选定的目录本身)导入到目标SVN路径下 操作的SVN目录必须要具备读写权限,否则操作将失败 导入操作也可以通过本地数据(文件或文件夹)的拖放来实现,SVN数据导出,步骤一:在本地创建需要接收SVN数据的目录 此操作非常简单,如果创建文件夹的操作你都还不会则建议你回去再 继续学习一下计算机基础内容 步骤二:将SVN服务器目录下的数据下载到本地 右键点击下载数据需要保存的目录,在弹出菜单中选择 TortoiseSVNExport,在弹出框的URL地址栏上输入数据导出的 目标SVN路径并点击确定完成数据导出操作 注意: 操作是将选定SVN目录中的数据(不包括选定的SVN目录本身)导出到本地路径下 操作的SVN目录至少要具备只读权限,否则操作将失败 导入导出操作也可以通过本地数据(文件或文件夹)的拖放来实现,SVN数据检出,步骤一:在本地创建需要接收SVN数据的目录 步骤二:将SVN服务器目录下的数据下载到本地 右键点击下载数据需要保存的目录,在弹出菜单中选择 SVN Checkout.,在弹出框的URL地址栏上输入数据检出的目标SVN 路径并点击确定完成数据检出操作 注意: 操作是将选定SVN目录中的数据(不包括选定的SVN目录本身)检出到本地路径下 操作的SVN目录必须要具备读写权限,否则操作将失败 检出与导出的区别在于检出的数据是添加了版本的受控数据,而导出的数据是没有版 本控制的,关于SVN版本控制的一些名词概念,1、本地版本:指本机中当前文件或文件夹数据,这些数据只有终端用户自己才能操作到 2、检出版本:数据从SVN服务器上被检出之后被复制成两份,一部分放置于SVN客户端缓存中,被称为检出数据或检出版本,另一部分数据被放置在本地提供给用户操作,称为本地数据或本地版本,刚检出的数据其检出数据与本地数据是完全一致的,此时SVN使用绿色勾选标记本地数据;当用户修改了本地数据之后将造成本地数据与检出数据不一致,此时本地数据被标记成红色叹号状态 3、最终版本:在多个用户同时共享和操作同一份SVN服务器上的数据时,某个用户在检出数据之后,另一些用户随后提交了该同一份数据的更改则SVN服务器上该数据的最高版本称之为最终版本,显然最终版本=检出版本;即:检出版本在检出之后不发生变化,它是相对于终端用户而言的,而最终版本则是相对于SVN服务器的,各个终端用户都可以提交数据更改共享数据的最终版本 3、最高版本:如果用户将本地数据进行修改并提交了修改后的结果则SVN服务器上会将该修改的数据更新到当前SVN服务器上所有数据的最高版本加1 最高版本也是相对于服务器的,最高版本是SVN服务器上所有文件的最高版本,关于SVN版本控制的一些本地标记,1、绿色勾选:指本地版本与检出版本数据是一致 2、红色叹号:指本地版本与检出版本数据不一致 3、黄色叹号:指更新时发生修改冲突,文件中标记本地修改与SVN上修改发生重叠且不一致的修改点(这种情况一般是发生在对标记为红色叹号的文件进行更新时所致,正常的流程是每次修改前先进行更新) 4、蓝色问号:表示该文件处在SVN版本控制上下文中,但是本地SVN缓存中却没有该文件的缓存记录,这实际上意味着该文件在SVN服务器上不存在,需要对其纳入版本监控,操作是在该文件上点击鼠标右键选择TortoiseSVNAdd. 5、蓝色加号:表示该文件已经纳入版本监控但是SVN服务器上还没有该文件,这意味着你需要提交该文件以保存该文件到SVN服务器上,操作是使用鼠标右键点击该文件选择SVN Commit. 6、红色叉号:表示本地已经将此文件删除,但是SVN上尚存在该文件,这实际上意味着你需要提交一次以删除SVN上的数据并与你本地保持同步,SVN数据提交,1、对于导出的数据来讲,它们属于非受控数据,没有所谓提交和更新的概念 2、对于检出的数据来讲,它们是受版本控制的数据,如果我们对检出的数据做了修改并希望将数据的修改结果保存到SVN服务器上面去则需要用到数据的提交,数据提交操作如下: 在需要提交的数据(文件或文件夹)上点鼠标右键SVN Commit.就可以将数据的修改结果保存到SVN服务器上 3、检出的数据在被修改之后会被SVN自动标记成红色叹号,红色叹号标记表示当前的本地数据与SVN检出版本数据不一致,如果数据被标记为绿色勾选则表示当前的本地数据与检出版本的数据是一致的 4、数据提交执行流程: 数据被提交时将检测本地数据与检出数据是否一致,如果是一致的则SVN将忽略此操作并响应数据无修改的提示信息,如果本地数据与检出数据不一致则与SVN服务器上该文件的最终版本进行比较,如果版本号相同则将修改结果保存到SVN服务器上,同时将版本号变成SVN服务器的最高版本,如果不相同将产生版本号冲突并返回异常提示消息(这实际上意味着你需要先更新该文件再修改最后提交),数据提交流程如下:,SVN数据提交流程,SVN数据更新,1、对于导出的数据来讲,它们属于非受控数据,没有所谓提交和更新的概念 2、对于检出的数据来讲,它们是受版本控制的数据,而检出的数据在SVN服务器上是共享的,其它用户可以随时更改并提交这些数据,如果我们在一段时间之后需要获取最新的SVN数据则需要将本地已经检出的数据做一次更新,在需要更新的数据(文件或文件夹)上点鼠标右键SVN Update就可以将SVN上的最新数据更新到本地 3、数据更新执行流程: 数据被更新时将检测本地数据与检出数据是否一致,如果数据一致将SVN服务器上的数据和版本号直接更新到本地,如果不一致则检测SVN服务器该共享文件的最高版本修改内容是否与本地修改数据发生重叠,如果没有发生重叠则将SVN服务器该文件的最终版本更新到本地同时提交本地修改的数据到SVN服务器上成为SVN最高版本,如果修改数据与SVN上该文件的修改发生重叠则产生更新冲突,SVN在发生更新冲突时将产生一个黄色三角形叹号的冲突文件和三个带有蓝色问号的提示文件;冲突文件标识出SVN上该文件与本地文件中修改重叠的不同点部分,后面三个提示文件分别表示服务器上当前文件的SVN版本,本地当前文件在检出时的SVN版本、本地当前文件被本地修改后的现在版本(这实际上意味着你需要删除此三个带问号的文件并修改带黄色叹号的文件之后再提交),SVN数据更新流程,23,总 结,1、SVN提供了一种对资源进行合理化管理的方案,集成多种操作于一身 2、对于软件领域而言,SVN主要用于完成工程代码的版本控制和管理 3、SVN对软件工程管理的三大标准目录是trunk、branches、tags;它们分别表示主干目录、分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据库在医学领域的应用
- 我的梦想电影讲解
- 设备投标技术方案宣讲
- 授受动词的讲解
- 现代教育技术实验
- 2026届广东省五校化学高二第一学期期末联考试题含答案
- 医院新员工岗前培训大纲
- 学校工作情况汇报
- 物业项目经理完成培训汇报
- 双眼皮讲解课件
- 桥下渣土处置方案(3篇)
- 2025年 杭州市余杭区卫生健康系统招聘医学类专业毕业生笔试考试试卷附答案
- 利用乳酸菌半固态发酵提升糙米食用感官与营养品质的研究
- 船体抢修方案(3篇)
- 智人迁徙路径重构-洞察及研究
- 关于医院“十五五”发展规划(2026-2030)
- 生物多样性保护与利用专项债项目可行性研究报告
- 吊桥浮桥安全管理制度
- T/CCSAS 023-2022危险化学品企业紧急切断阀设置和使用规范
- 员工签署自愿离职协议书
- 妇科护理小创新
评论
0/150
提交评论