书签 分享 收藏 举报 版权申诉 / 76
上传文档赚钱

类型SVN使用帮助完整版课件.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:3761587
  • 上传时间:2022-10-10
  • 格式:PPTX
  • 页数:76
  • 大小:1.31MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《SVN使用帮助完整版课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    SVN 使用 帮助 完整版 课件
    资源描述:

    1、SVN使用指南Linux 和 Windows环境版内 容 概 要 问题与案例 SVN简介 Linux版 Windows版问题与案例(一)电脑发生故障,文件没有备份而丢失了 由于人员离职,导致某些资料丢失了 我怎么知道手头的公共资料是不是最新版呢?想要追溯几个月前的某个状态,却发现那个版本的文件已经被当作垃圾删除了 每天要花费很多时间来向别人提供需要共享的资料问题与案例(二)相似的应用系统,每次都重复开发,难以复用 一个软件被用于多个项目,发现其中存在一个BUG,所有这些项目都要进行修复 人员分布在两地开发,版本如何同步 甲乙两人为不同目的修改了同一份文件,乙的提交在甲提交之后,导致甲修改的内容

    2、丢失了 客户测试发现了BUG,开发人员却无法重现出来BackSVN图例SVN 简介(一)SVN简介(二)一个开源的版本管理软件 可架设在Apache上,使用http或https协议访问;也可使用内置的svn协议访问 在Windows环境下,最常用的客户端为TortoiseSVN(简称TSVN)在Linux/Unix环境下,用命令行方式操作 SVN的版本号指的不是某个文件的状态,而是整个库的状态BackLinux SVN服务器帮助手册 svn使用基本流程 查询操作 定义操作 编辑操作一 系统环境说明二 svn客户端操作三 注意事项 Linux系统环境说明 公司linux svn服务器IP地址为1

    3、92.9.200.41,服务器名字:dept5svn。操作系统版本.Red Hat Enterprise Linux Server release 5.4(Tikanga),32位。内核版本:2.6.18-164.el5xen 软件环境:apache2.4.1,subversion 1.7.0,sqlite3.7.0.客户端操作(一)svn使用基本流程:初次checkout仓库项目,建立本地工作拷贝目录 与项目同步(update),保证要进行的编辑时最新版本 编辑源代码(包括创建,修改,删除)、与项目同步,提交之前要同步到最新版本,保证所有在自己之前的有关提交已经在本地有所知晓 解决冲突(re

    4、solve conflict)提交(commit),一定要写上这次提交的内容的摘要,便于以后查阅(二)查询操作1.将文件checkout到本地目录通过浏览器查询,输入192.9.200.41/svn/smqv600/,在第一次访问时,输入svn账号和密码,成功验证后会弹出如下图示(二)查询操作 2.查看文件或目录状态 1)svn status path(目录下的文件和子目录状态,正常状态不显示)状态说明【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K;被锁定】2)svn status v path(显示文件和子目录状态)第一列保持相同,第二列显示工作版本号,第三

    5、和第四列显示最后一次修改的版本号和修改人。注:svn status,svndiff,和svnrevert 这三条命令在没有网络的情况下也可以执行的,原因是svn 在本地的.svn中保留了本地版本的原始拷贝。在checkout后的项目目录中输入 svn status v.简写:svn st v 3.查看文件详细信息在checkout后的项目目录中输入 svn info path如 svn info test.ph4.查看日志信息在checkout后的项目目录中输入 svn log path例如:svn log test.php 显示这个文件所有修改记录,及其版本号的变化5.比较差异svn dif

    6、f path(将修改的文件与基础版本比较)在checkout后的项目目录中输入 svn diff r m:n path(对版本m和n比较差异)例如:输入$svn diff r 2:4 test.php6 svn 帮助在用户svn命令可执行的路径下输入svn help svn help ci如图示7.svn list path 显示版本库下的文件和目录列表 简写:svn ls8.svn cat 输出指定文件或URL的内容 svn cat r PREV filename filename(PREV 时上一版本,也可以写具体版本号,这样输出结果是可以提交的)(三)定义操作整个项目负责人具有项目定义的

    7、权限,因此这里简单介绍下,项目库定义的有关操作及说明1.创建项目:$svnadmin create -fs-type fsfs/home/svn/repository/xxx,这样就创建了xxx目录,其下还有许多辅助目录如图 说明/home/svn/repository/xxx/conf 时这个项目配置文件存放地方/home/svn/repository/xxx/hooks是hooks脚本的存放位置2.项目布局:有实践经验,一个项目的生存周期也不是单线的,常常有些分支或者稳定版发布或者特定功能实验性加入等事件,项目的布局需要进行一定设计来支持这些事件,官方指导建议布局为Project/trun

    8、k 项目主体存放位置Project/branches 项目各种分支存放Project/tag 公开发布的版本存档虽然官方提供 svn mkdir等命令逐一建立,然后提交。但本人建议一种比较简便的方法,输入如下语句:cd /home/svn/repository/xxx mkdir trunk;mkdir branches;mkdir tagssvn import.file:/home/svn/repository/xxx/,注意它会自动调用vim编辑器,在编辑状态下输入此次操作的信息如:Initial repository layout如图所示:导入过程如图:3.实现过程 例如文件的配置,账号

    9、的建立和权限的控制,鉴于篇幅和实际工作环境中的需求,在此不作累述。如有疑问可咨询IT中心4 项目的删除,注意不是仓库的清空。简单的把项目目录删除就可以了 rm rf/home/svn/repository/xxx(四)编辑操作1.在项目目录中,创建文件,目录 执行svn add test.php(添加test.php)svn add*.php(添加当前目录下所有的php文件)svn add test(目录)2.将改动的文件提交到版本库如 执行 svn commit test.php 简写为svn ci 提交整个目录 3.加锁/解锁svn lock m“lock test.php file”te

    10、st.php为了方便编辑和管理控制,服务器端数据库没有开放lock。如有特殊需要,可以向IT中心咨询 svn unlock test.php 4.更新到某个版本svn update r m path(简写 svn up)例如:svn uptdate 如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本 svn update-r 9 test.php(将版本库中的文件test.php更新到版本9)注意 svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交c

    11、ommit)5.恢复本地修改 svn revert:恢复原始未改变的工作副本文件(恢复大部分的本地修改)。本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录用法 svn revert test 6.删除文件 svn delete path m“delete test file”例如:svn delete 192.9.200.41/svn/smqv600/test.php m“delete test.php”或者直接 svn delete test.php 然后再 svn ci m delete test.php简写为:svn(del,remove,rm)或者 三 注意事项1

    12、 在用浏览器进行访问的时候,要正确输入192.9.200.41/svn/,而如果输入192.9.200.41/svn则会报错 http404 未找到2 在linux 客户端操作下,客户端在svn进行编辑操作可能会出现“svn:无法使用外部编辑器获得日志信息,考虑设置环境变量$SVN_EDITOR或者使用message(-m)或file(-F)选项.”这是只要设置环境变量如下$export SVN_EDITOR=vim 就可以了!Windows版本 应用环境 客户端安装 简单应用 复杂应用应用环境 服务器端:Virsual的SVN服务器端安装包(内含Apache2.2.22)Windows客户端

    13、:推荐使用TortoiseSVN(以下简称TSVN)可通过TSVN进行读、写操作 可通过IE浏览器进行读操作 可通过各种插件与开发工具集成Back客户端安装(一)安装文件:TSVN客户端:TortoiseSVN-1.7.4.22459-win32-svn-1.7.2 全部选择默认安装,安装完成后重启电脑 TSVN通过右键菜单与Windows资源管理器集成,没有自己的窗口界面Back客户端安装(二)TSVN通过右键菜单与Windows资源管理器集成,没有自己的窗口界面Back简单应用 TSVN右键菜单与图标 创建版本库 检出 更新 提交 增加 删除 改名 移动BackTSVN右键菜单(一)Bac

    14、k第一次从服务器下载数据(含历史信息)查看服务器上版本库内容从服务器下载数据(不含历史信息)在服务器上创建新的版本库(限服务器上操作)导入新版本库的目录结构(不推荐使用)TSVN右键菜单(二)Back从服务器上下载最新版本将本地的修改上传到服务器查看修订历史信息标记冲突已经被解决取回之前的某个版本放弃本次进行的修改SVN控制下的改名和删除将新文件纳入SVN的控制创建分支或标记合并分支TSVN图标Back创建版本库 在SVN服务器端操作 在相应文件夹内新建一个文件夹,用于存储数据 在新建文件夹上点右键,选择“TortoiseSVN在此创建版本库”,TSVN会在此文件夹内建立若干控制文件Back检

    15、出(一)“检出”用于客户端第一次从SVN服务器上下载版本库数据 在客户端新建一个文件夹用于存放下载的数据 在新建文件夹上点右键,选择“SVN检出”Back检出(二)在弹出窗口的“版本库URL”处填入版本库的访问地址,如:https:/192.9.200.122/svn/project/点“确定”开始从SVN服务器下载数据Back更新“更新”用于客户端从SVN服务器下载最新版本 在受SVN控制的某层文件夹上(或文件夹内空白处)点右键,选择“SVN更新”,TSVN自动比较该文件夹客户端与服务器的版本差异,并下载最新版本到客户端Back提交(一)“提交”用于将客户端的改动上传到SVN服务器 在受SV

    16、N控制的某层文件夹上(或文件夹内空白处,或某文件上)点右键,选择“SVN提交”Back提交(二)TSVN自动检查该文件夹客户端的改动,并将其列在弹出窗口的“变更列表”栏 在弹出窗口的“信息”栏写上对此次提交的注释,以便将来追溯 点击“确定”将客户端的改动上传到服务器Back增加(一)“增加”用于将新文件或文件夹纳入SVN的控制之下 在受SVN控制的某层文件夹上(或文件夹内空白处,或新增的某文件上)点右键,选择“TortoiseSVN增加”Back增加(二)如果“增加”是对文件夹进行操作,则会弹出窗口列出该文件夹下未受控的文件,点击“确定”将其纳入SVN控制“增加”后文件图标从 变成“增加增加”

    17、仅是对客户端的文件进行标注,仅是对客户端的文件进行标注,并不上传到服务器,需要执行并不上传到服务器,需要执行“提交提交”操操作才会上传作才会上传Back删除(一)“删除”用于从当前版本中删除文件或文件夹 在受SVN控制的文件夹中,通过Windows直接删除子文件夹或文件 或:在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN删除”Back删除(二)“删除删除”仅是对客户端的文件进行操作,并仅是对客户端的文件进行操作,并不改变服务器上的内容,需要执行不改变服务器上的内容,需要执行“提交提交”操作才会将删除操作上传到服务器操作才会将删除操作上传到服务器 将将“删除删除”操作操作

    18、“提交提交”到服务器后,仅到服务器后,仅是从服务器的最新版本中删除了此文件或是从服务器的最新版本中删除了此文件或文件夹,在历史版本中仍可找回此文件或文件夹,在历史版本中仍可找回此文件或文件夹文件夹Back改名(一)“改名”用于在受SVN控制的状态下,对文件或文件夹改名 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN改名”Back改名(二)“改名改名”仅是对客户端的文件进行操作,并仅是对客户端的文件进行操作,并不改变服务器上的内容,需要执行不改变服务器上的内容,需要执行“提交提交”操作才会将改名操作上传到服务器操作才会将改名操作上传到服务器 不要用不要用Windows“重

    19、命名重命名”来实现改名,因来实现改名,因为这个操作不受为这个操作不受SVN控制,控制,SVN会将其理会将其理解为删除原文件、增加一个新文件,从而解为删除原文件、增加一个新文件,从而导致文件改名后不能跟踪到改名前的状态导致文件改名后不能跟踪到改名前的状态Back改名(三)改名的另一种方法:在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN版本库浏览器”在弹出窗口右键点击要改名的文件夹或文件,选择“改名”由于是对服务器版本库直接操作,改名后将自动执行一次“提交”操作 改名完成后需要在客户端执行一次“更新”,以下载最新状态Back移动(一)“移动”用于在受SVN控制的状态下,移动

    20、文件或文件夹的位置 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN版本库浏览器”在弹出窗口拖动文件夹或文件到需要的位置 由于是对服务器版本库直接操作,移动后将自动执行一次“提交”操作 移动完成后需要在客户端执行一次“更新”,以下载最新状态Back移动(二)不要用不要用Windows的拖动操作或的拖动操作或“剪切剪切”、“粘贴粘贴”来实现移动,因为这些操作不受来实现移动,因为这些操作不受SVN控制,控制,SVN会将其理解为在原位置删会将其理解为在原位置删除文件、在新位置增加文件,从而导致文除文件、在新位置增加文件,从而导致文件移动后不能跟踪到移动前的状态件移动后不能跟踪到

    21、移动前的状态Back复杂应用 更新至版本 还原 复原(回滚)冲突及解决 分支/标记 合并 锁定/解锁 权限管理Back更新至版本“更新至版本”用于取出文件的某历史版本 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN更新至版本”在弹出窗口中填写要取的版本号,点“确定”取回该版本Back还原(一)“还原”用于放弃“增加”、“删除”、“改名”以及修改文件内容等客户端的本地操作,将客户端的数据恢复到改动前的版本状态 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVNSVN还原”Back还原(二)在弹出窗口中查看要还原的内容,点击“确定”还原客户端数据“还原”

    22、只能用于执行“提交”操作之前,即未将客户端的改变上传到服务器之前Back复原(回滚)(一)复原(回滚)用于将项目恢复到之前的某个版本状态,并在此版本基础上继续后面的工作 在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN显示日志”Back复原(回滚)(二)在弹出的日志窗口中,右键点击要复原的版本,选择“复原到此版本”复原结束后,执行“提交”操作,将此版本作为版本库的最新版本Back冲突及解决(一)冲突的产生:当两人从同一个版本出发,修改同一份文件并提交时,这两个修改版本就会发生冲突,后提交的人会收到发生冲突的提醒,且提交失败,要求先进行更新操作Back冲突及解决(二)113

    23、114115113114115Back不会导致冲突不会导致冲突可能导致冲突可能导致冲突冲突及解决(三)发生冲突后,执行“更新”操作后:对于发生冲突的文件,TSVN会加上冲突标记 如果发生冲突的文件是二进制文件(如doc文件、jpg文件),TSVN会增加2个文件,分别是起始版本和发生冲突的版本 如果发生冲突的文件是文本文件(如c文件、txt文件),TSVN会将工作副本中的原文件改名增加“.mine”后缀,将两个版本的冲突写入原名文件(文件中用加以标识),并另外增加2个文件,分别是起始版本和发生冲突的版本Back冲突及解决(四)例如:两人从第213版开始对start.c和SRS.doc进行修改,甲

    24、先修改完成并提交形成217版,乙随后提交时发生冲突,则在乙的该文件夹下将会存在七个文件:start.c:自动合并了甲和乙的修改内容的start.c start.c.r213:甲乙修改前的start.c start.c.r217:甲修改后的strat.c start.c.mine:乙修改后的start.c SRS.doc:乙修改后的SRS.doc SRS.doc.r213:甲乙修改前的SRS.doc SRS.doc.r217:甲修改后的SRS.docBack冲突及解决(五)解决冲突:手工将前一版本中的修改整合到自己的文件中 在冲突的文件或文件夹上点右键,选择“Tortoise已解决的”,标记为冲

    25、突已解决(此时会自动删除多余的文件),然后再次“提交”Back分支/标记(一)分支:“分支”通常用于在不同的线上同时工作的情况“分支”通常设置为分支的所有者拥有读写权限,其他人员仅有读取权限 标记“标记”通常用于版本发布、标识基线状态等情况“标记”通常设置为配置管理员拥有读写缺陷,其他人员只有读取权限 SVN使用同样的操作进行“分支”和“标记”Back分支/标记(二)推荐的目录结构Backprojecttrunkbranchestags代码文档分支/标记(三)案例一709XXX软件软件711A版版712B版版713C版版7147187207267177197227277167217287157

    26、23724730710Release_V1_0725Release_V1_1tags标记标记trunk主干主干branches分支分支729Back分支/标记(四)案例二711XXX软件软件713V1_0维护维护715717719714716718720712Release_V1_01012Release_V2_0tags标记标记trunk主干主干branches分支分支10111013V2_0维护维护Back分支/标记(五)案例三Back712XXX软件软件713BUG037717718720721714715716719trunk主干主干branches分支分支722发现BUG,编号037

    27、分支/标记(六)创建分支 在受SVN控制的某层文件夹上点右键,选择“TortoiseSVN分支/标记”在弹出窗口的“至URL”栏,填写分支的存放地址,通常将其存放到branches目录下,并加上分支的名称,如:10.50.22.35:8080/svn/软件中心/project/tags/Release_V1_0Back分支/标记(七)创建分支 在弹出窗口的“从此复制到版本库”处选择从“最新版本”或“指定版本”或“工作副本”(工作副本可能是个混合版本)复制 在弹出窗口的“日志信息”栏填写注释信息,然后点击“确定”在对应的文件夹执行“更新”操作,下载分支到客户端,之后对分支的操作均在此文件夹进行B

    28、ack分支/标记(八)创建标记 创建标记与创建分支类似,只是通常将其存放到tags目录下,如:10.50.22.35:8080/svn/软件中心/project/tags/Release_V1_0 标记实际是为某个版本做了个标签,不会为另存一份而消耗服务器的存储空间Back合并(一)合并:对两个版本树进行比较,然后将区别应用到本地副本(合并后需进行“提交”操作)例如:在分支A上进行了一系列修改,现在要将这些修改合并到主干上,则可比较建立A分支的版本与A分支最终版本之间的差异,并将差异应用到主干上 可从分支合并到主干,也可从主干合并到分支,也可从分支A合并到分支B 可选择合并创建分支以来的所有改

    29、变,也可选择合并创建分支以来的某几个版本的改变Back合并(二)在目标文件夹上点右键,如要将“branches/工行版”分支的内容合并到主干上,则在“trunk”文件夹上点右键,选择“Tortoise合并”在弹出窗口选择“合并一个版本范围”(常用选择)点击“下一条”Back合并(三)在“合并的源URL”处选择要合并进来的分支地址,如:10.50.22.35:8080/svn/软件中心/project/branches/工行版 在“待合并的版本范围”处填入合并的版本范围,可点击边上的“显示日志”选择版本 点击“下一条”Back合并(四)合并深度选择默认的“工作副本”“比较空白字符”、“忽略空白字

    30、符的变化”等选择用于对文本文件的比较“测试合并”可在正式合并之前测试合并结果,比如是否存在冲突等 点击“合并”若未发生冲突,可在合并后执行“提交”操作Back合并(五)若合并时发生冲突,通常可在弹出窗口选择“以后解决”,在本地副本中冲突的文件处将增加2个文件(对二进制文件)或3个文件(对文本文件)手动解决冲突后,使用“Tortoise已解决的”标记冲突已解决,然后执行“提交”操作Back锁定/解锁(一)为了便于多人协作,SVN不提倡“锁定修改解锁”的方式 由于存在冲突解决的机制,通常多人可对同一份文件进行修改,而不会导致严重问题 但在某些情况下,比如对一张图片进行修改时,两份冲突的图片文件将很

    31、难被整合到一起,这时建议用锁定/解锁的方式Back锁定/解锁(二)锁定方法一 在需要锁定的文件夹或文件上点右键,选择“Tortoise属性”在弹出的“属性”窗口选择“新建”,在弹出的“增加属性”窗口,选择“svn:needs-lock”属性,并点“确定”增加属性 执行“提交”操作,将属性的改变上传到服务器,若他人执行更新操作,将看到文件被设置为只读Back锁定/解锁(三)在设置了needs-lock属性的文件或文件夹上点右键,选择“SVN获取锁定”,以获取锁的拥有权 在弹出窗口输入锁定的原因等注释信息,然后点击“确定”获取锁定 获取锁的拥有权后,文件将被标识为Back锁定/解锁(三)锁定方法二

    32、 在要锁定的文件或文件夹上点右键,选择“Tortoise 获取锁定”,即可锁定并拥有其所有权,文件将被标识为 采用此锁定方法时,并不会自动设定svn:needs-lock属性,别人更新后也看不到此标记 ,但可阻止别人的提交Back锁定/解锁(四)锁定后,他人提交时将被报告文件已被锁,并提交失败 解锁:对应锁定方法一:在锁定的文件夹或文件上点右键,选择“Tortoise属性”,删除svn:needs-lock属性,然后提交 对应锁定方法二:当拥有锁的人提交被锁定文件时,锁将被自动取消(而且当前拥有的所有锁都将被解除);也可通过“解除锁定”来解锁 窃取锁:他人可通过“获取锁定”(勾选“偷取此锁定”)来窃取锁的拥有权 强制解锁:当拥有锁的人忘记解锁时,他人可通过SVN命令行强制解锁(TSVN目前不提供该功能,可通过窃取锁解锁实现)Back权限管理 管理员可通过修改服务器上的权限文件,实现对权限的控制 权限分为三种:无权限、只读权限和读写权限 权限的控制以文件夹为最小单位 可对单个用户的权限进行控制,也可以对用户组的权限进行控制Back完毕,谢谢!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:SVN使用帮助完整版课件.pptx
    链接地址:https://www.163wenku.com/p-3761587.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库