版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021/3/271SVN使用指南Windows环境版2021/3/272内 容 概 要 问题与案例 SVN简介 应用环境 客户端安装 简单应用 复杂应用2021/3/273问题与案例(一) 电脑发生故障,文件没有备份而丢失了 由于人员离职,导致某些资料丢失了 我怎么知道手头的公共资料是不是最新版呢? 想要追溯几个月前的某个状态,却发现那个版本的文件已经被当作垃圾删除了 每天要花费很多时间来向别人提供需要共享的资料Back2021/3/274问题与案例(二) 相似的应用系统,每次都重复开发,难以复用 一个软件被用于多个项目,发现其中存在一个BUG,所有这些项目都要进行修复 人员分布在两地开发,
2、版本如何同步 甲乙两人为不同目的修改了同一份文件,乙的提交在甲提交之后,导致甲修改的内容丢失了 客户测试发现了BUG,开发人员却无法重现出来Back2021/3/275SVN简介(一)BackSVN2021/3/276SVN简介 SVN是一个开源的版本管理软件 可架设在Apache上,使用http或https协议访问;也可使用内置的svn协议访问 在Windows环境下,最常用的客户端为TortoiseSVN(简称TSVN)2021/3/277客户端安装 安装文件: TSVN客户端: TortoiseSVN-9260-win32-svn-1.6.11.msi TSVN中文语言包:
3、 LanguagePack_9260-win32-zh_CN.msi 全部选择默认安装,安装完成后重启电脑 TSVN通过右键菜单与Windows资源管理器集成,没有自己的窗口界面2021/3/278简单应用 TSVN右键菜单与图标 创建版本库 检出 更新 提交 增加 删除 改名 移动2021/3/279TSVN右键菜单(一)Back第一次从服务器下载数据(含历史信息)查看服务器上版本库内容从服务器下载数据(不含历史信息)在服务器上创建新的版本库(限服务器上操作)导入新版本库的目录结构(不推荐使用)2021/3/2710TSVN右键菜单(二)Back从服务器上下载最新版本将本地的修
4、改上传到服务器查看修订历史信息标记冲突已经被解决取回之前的某个版本放弃本次进行的修改SVN控制下的改名和删除将新文件纳入SVN的控制创建分支或标记合并分支2021/3/2711TSVN图标Back2021/3/2712创建版本库 在SVN服务器端操作 在相应文件夹内新建一个文件夹,用于存储数据 在新建文件夹上点右键,选择“TortoiseSVN在此创建版本库”,TSVN会在此文件夹内建立若干控制文件Back2021/3/2713检出(一) “检出”用于客户端第一次从SVN服务器上下载版本库数据 在客户端新建一个文件夹用于存放下载的数据 在新建文件夹上点右键,选择“SVN检出”Back2021/
5、3/2714检出(二) 在弹出窗口的“版本库URL”处填入版本库的访问地址,输入:点“确定”开始从SVN服务器下载数据Back2021/3/2715更新 “更新”用于客户端从SVN服务器下载最新版本 在受SVN控制的某层文件夹上(或文件夹内空白处)点右键,选择“SVN更新”,TSVN自动比较该文件夹客户端与服务器的版本差异,并下载最新版本到客户端Back2021/3/2716提交(一) “提交”用于将客户端的改动上传到SVN服务器 在受SVN控制的某层文件夹上(或文件夹内空白处,或某文件上)点右键,选择“SVN提交”Back2021/3/2717提交(二) TSVN自动检查该文件夹客户端的改动
6、,并将其列在弹出窗口的“变更列表”栏 在弹出窗口的“信息”栏写上对此次提交的注释,以便将来追溯 点击“确定”将客户端的改动上传到服务器Back2021/3/2718增加(一) “增加”用于将新文件或文件夹纳入SVN的控制之下 在受SVN控制的某层文件夹上(或文件夹内空白处,或新增的某文件上)点右键,选择“TortoiseSVN增加”Back2021/3/2719增加(二) 如果“增加”是对文件夹进行操作,则会弹出窗口列出该文件夹下未受控的文件,点击“确定”将其纳入SVN控制 “增加”后文件图标从 变成 “增加增加”仅是对客户端的文件进行标注仅是对客户端的文件进行标注,并并不上传到服务器不上传到
7、服务器,需要执行需要执行“提交提交”操作才操作才会上传会上传Back2021/3/2720删除(一) “删除”用于从当前版本中删除文件或文件夹 在受SVN控制的文件夹中,通过Windows直接删除子文件夹或文件 或:在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN删除”Back2021/3/2721删除(二) “删除删除”仅是对客户端的文件进行操作仅是对客户端的文件进行操作,并不并不改变服务器上的内容改变服务器上的内容,需要执行需要执行“提交提交”操操作才会将删除操作上传到服务器作才会将删除操作上传到服务器 将将“删除删除”操作操作“提交提交”到服务器后到服务器后,仅是仅
8、是从服务器的最新版本中删除了此文件或文从服务器的最新版本中删除了此文件或文件夹件夹,在历史版本中仍可找回此文件或文件在历史版本中仍可找回此文件或文件夹夹Back2021/3/2722改名(一) “改名”用于在受SVN控制的状态下,对文件或文件夹改名 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN改名”Back2021/3/2723改名(二) “改名改名”仅是对客户端的文件进行操作仅是对客户端的文件进行操作,并不并不改变服务器上的内容改变服务器上的内容,需要执行需要执行“提交提交”操操作才会将改名操作上传到服务器作才会将改名操作上传到服务器 不要用不要用Windows“重
9、命名重命名”来实现改名来实现改名,因因为这个操作不受为这个操作不受SVN控制控制,SVN会将其理解会将其理解为删除原文件、增加一个新文件为删除原文件、增加一个新文件,从而导致从而导致文件改名后不能跟踪到改名前的状态文件改名后不能跟踪到改名前的状态Back2021/3/2724改名(三) 改名的另一种方法: 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN版本库浏览器” 在弹出窗口右键点击要改名的文件夹或文件,选择“改名” 由于是对服务器版本库直接操作,改名后将自动执行一次“提交”操作 改名完成后需要在客户端执行一次“更新”,以下载最新状态Back2021/3/2725移动
10、(一) “移动”用于在受SVN控制的状态下,移动文件或文件夹的位置 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN版本库浏览器” 在弹出窗口拖动文件夹或文件到需要的位置 由于是对服务器版本库直接操作,移动后将自动执行一次“提交”操作 移动完成后需要在客户端执行一次“更新”,以下载最新状态Back2021/3/2726移动(二) 不要用不要用Windows的拖动操作或的拖动操作或“剪切剪切”、“粘贴粘贴”来实现移动来实现移动,因为这些操作不受因为这些操作不受SVN控制控制,SVN会将其理解为在原位置删除会将其理解为在原位置删除文件、在新位置增加文件文件、在新位置增加文件,
11、从而导致文件移从而导致文件移动后不能跟踪到移动前的状态动后不能跟踪到移动前的状态Back2021/3/2727复杂应用 更新至版本 还原 复原(回滚) 冲突及解决 分支/标记 合并 锁定/解锁 权限管理Back2021/3/2728更新至版本 “更新至版本”用于取出文件的某历史版本 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN更新至版本” 在弹出窗口中填写要取的版本号,点“确定”取回该版本Back2021/3/2729还原(一) “还原”用于放弃“增加”、“删除”、“改名”以及修改文件内容等客户端的本地操作,将客户端的数据恢复到改动前的版本状态 在受SVN控制的某层文
12、件夹或文件上点右键,选择“TortoiseSVNSVN还原”Back2021/3/2730还原(二) 在弹出窗口中查看要还原的内容,点击“确定”还原客户端数据 “还原”只能用于执行“提交”操作之前,即未将客户端的改变上传到服务器之前Back2021/3/2731复原(回滚)(一) 复原(回滚)用于将项目恢复到之前的某个版本状态,并在此版本基础上继续后面的工作 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN显示日志”Back2021/3/2732复原(回滚)(二) 在弹出的日志窗口中,右键点击要复原的版本,选择“复原到此版本” 复原结束后,执行“提交”操作,将此版本作为版
13、本库的最新版本Back2021/3/2733冲突及解决(一) 冲突的产生: 当两人从同一个版本出发,修改同一份文件并提交时,这两个修改版本就会发生冲突,后提交的人会收到发生冲突的提醒,且提交失败,要求先进行更新操作Back2021/3/2734冲突及解决(二)113114115113114115Back不会导致冲突不会导致冲突可能导致冲突可能导致冲突2021/3/2735冲突及解决(三) 发生冲突后,执行“更新”操作后: 对于发生冲突的文件,TSVN会加上冲突标记 如果发生冲突的文件是二进制文件(如doc文件、jpg文件),TSVN会增加2个文件,分别是起始版本和发生冲突的版本 如果发生冲突的
14、文件是文本文件(如c文件、txt文件),TSVN会将工作副本中的原文件改名增加“.mine”后缀,将两个版本的冲突写入原名文件(文件中用加以标识),并另外增加2个文件,分别是起始版本和发生冲突的版本Back2021/3/2736冲突及解决(四) 例如:两人从第213版开始对start.c和SRS.doc进行修改,甲先修改完成并提交形成217版,乙随后提交时发生冲突,则在乙的该文件夹下将会存在七个文件: start.c:自动合并了甲和乙的修改内容的start.c start.c.r213:甲乙修改前的start.c start.c.r217:甲修改后的strat.c start.c.mine:乙
15、修改后的start.c SRS.doc:乙修改后的SRS.doc SRS.doc.r213 :甲乙修改前的SRS.doc SRS.doc.r217:甲修改后的SRS.docBack2021/3/2737冲突及解决(五) 解决冲突: 手工将前一版本中的修改整合到自己的文件中 在冲突的文件或文件夹上点右键,选择 “Tortoise已解决的”,标记为冲突已解决(此时会自动删除多余的文件),然后再次“提交”Back2021/3/2738分支/标记(一) 分支: “分支”通常用于在不同的线上同时工作的情况 “分支”通常设置为分支的所有者拥有读写权限,其他人员仅有读取权限 标记 “标记”通常用于版本发布、
16、标识基线状态等情况 “标记”通常设置为配置管理员拥有读写缺陷,其他人员只有读取权限 SVN使用同样的操作进行“分支”和“标记”Back2021/3/2739分支/标记(二)推荐的目录结构Backprojecttrunkbranchestags代码文档2021/3/2740分支/标记(三)案例一709XXX软件软件711工行版工行版712建行版建行版713农行版农行版714718720726717719722727716721728715723724730710Release_V1_0725Release_V1_1tags标记标记trunk主干主干branches分支分支729Back2021/
17、3/2741分支/标记(四)案例二711XXX软件软件713V1_0维护维护715717719714716718720712Release_V1_01012Release_V2_0tags标记标记trunk主干主干branches分支分支10111013V2_0维护维护Back2021/3/2742分支/标记(五)案例三Back712XXX软件软件713BUG037717718720721714715716719trunk主干主干branches分支分支722发现BUG,编号0372021/3/2743分支/标记(六)创建分支 在受SVN控制的某层文件夹上点右键,选择“TortoiseSVN分
18、支/标记” 在弹出窗口的“至URL”栏,填写分支的存放地址,通常将其存放到branches目录下,并加上分支的名称,如:新建目录Back2021/3/2744分支/标记(七)创建分支 在弹出窗口的“从此复制到版本库”处选择从“最新版本”或 “指定版本”或“工作副本”(工作副本可能是个混合版本)复制 在弹出窗口的“日志信息”栏填写注释信息,然后点击“确定” 在对应的文件夹执行“更新”操作,下载分支到客户端,之后对分支的操作均在此文件夹进行Back2021/3/2745分支/标记(八)创建标记 创建标记与创建分支类似,只是通常将其存放到tags目录下,如: 标记实际是为某个版本做了个标签,不会为另
19、存一份而消耗服务器的存储空间Back2021/3/2746合并(一) 合并:对两个版本树进行比较,然后将区别应用到本地副本(合并后需进行“提交”操作) 例如:在分支A上进行了一系列修改,现在要将这些修改合并到主干上,则可比较建立A分支的版本与A分支最终版本之间的差异,并将差异应用到主干上 可从分支合并到主干,也可从主干合并到分支,也可从分支A合并到分支B 可选择合并创建分支以来的所有改变,也可选择合并创建分支以来的某几个版本的改变Back2021/3/2747合并(二) 在目标文件夹上点右键,如要将“branches/工行版”分支的内容合并到主干上,则在“trunk”文件夹上点右键,选择“To
20、rtoise合并” 在弹出窗口选择“合并一个版本范围”(常用选择) 点击“下一条”Back2021/3/2748合并(三) 在“合并的源URL”处选择要合并进来的分支地址,如:工行版 在“待合并的版本范围”处填入合并的版本范围,可点击边上的“显示日志”选择版本 点击“下一条”Back2021/3/2749合并(四) 合并深度选择默认的“工作副本” “比较空白字符”、“忽略空白字符的变化”等选择用于对文本文件的比较 “测试合并”可在正式合并之前测试合并结果,比如是否存在冲突等 点击“合并” 若未发生冲突,可在合并后执行“提交”操作Back2021/3/2750合并(五) 若合并时发生冲突,通常可在弹出窗口选择“以后解决”,在本地副本中冲突的文件处将增加2个文件(对二进制文件)或3个文件(对文本文件) 手动解决冲突后,使用“Tortoise已解决的”标记冲突已解决,然后执行“提交”操作Back2021/3/2751锁定/解锁(一) 为了便于多人协作,SVN不提倡“锁定修改解锁”的方式 由于存在冲突解决的机制,通常多人可对同一份文件进行修改,而不会导致严重问题 但在某些情况下,比如对一张图片进行修改时,两份冲突的图片文件将很难被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 探索白念珠菌多铜氧化酶基因:功能剖析与转录调控机制研究
- 2026年房地产经纪协议法务合作
- 2026苏州创元集团财务有限公司招聘2人笔试备考试题及答案解析
- 2026四川成都市第七人民医院助理全科医生培训招聘24人笔试模拟试题及答案解析
- 2026新疆文旅投集团所属产业公司选聘50人笔试模拟试题及答案解析
- 2026北京城市学院墨西哥瓜达拉哈拉大学孔子学院国家公派出国教师招募2人考试备考题库及答案解析
- 2026清明上河园招聘笔试备考题库及答案解析
- 2026黑龙江财经学院士人才引进10人笔试模拟试题及答案解析
- 2026上半年四川事业单位统考南充市考试招聘教师438人笔试模拟试题及答案解析
- 大脑中动脉瘤案例分析
- 2026浙江温州市公安局招聘警务辅助人员42人笔试参考题库及答案解析
- 2026广东茂名市公安局招聘警务辅助人员67人考试参考题库及答案解析
- 2026年希望杯IHC全国赛二年级数学竞赛试卷(S卷)(含答案)
- 中国抗真菌药物临床应用指南(2025年版)
- 2025-2026 学年下学期八年级英语下册教学计划
- 幼儿园春季育儿知识分享:守护成长健康同行
- 2026年六安职业技术学院单招职业适应性考试题库附答案详解(预热题)
- 2025年安徽审计职业学院单招职业适应性测试试题及答案解析
- 2026年春节后复工复产“开工第一课”安全生产培训课件
- 2025年西南计算机有限责任公司招聘笔试真题
- SMT炉后检查作业指导书V1.0
评论
0/150
提交评论