《SVN培训资料(共52张).pptx》由会员分享,可在线阅读,更多相关《SVN培训资料(共52张).pptx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SVN内部培训资料目录1 SVN的简介的简介2 SVN的安装的安装3 SVN的相关图标的相关图标4 SVN的日常使用的日常使用5 SVN的总结注意事项的总结注意事项1、SVN的简介 SVN全名Subversion,即版本控制系统,是一个跨平台的软件,支持大多数常见的操作系统。它作为一个开源的版本控制系统,管理随时间改变的数据。而这些数据都放置在一个中央资料档案库 (repository) 中,这个档案库类似于一个普通的文件服务器,记录着每一次文件变动的过程,便于将档案恢复到旧的版本或是浏览文件的变动历史。用来管理任何类型的文件, 其中包括了程序源码。 TortoiseSVN:是SVN客户端程序
2、,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端。SVNService.exe:是专为 SubVersion 开发的一个用来作为 Win32 服务挂接的入口程序。 1、SVN的简介记录每个文件的成长细节,开发过程中保存产品的中间结果,实现了信息的共享;所有成员维护的实际是同一个版本库,无需专人维护所有文件的最新版本,即避免传统发送资料的时间又可以防止文件版本混乱;及时了解团队中其他成员的进度,协同工作,提高团队工作效率,利于团队之间成果的复用;对任两个中间结果进行比较,比较不同版本间的细微差别;1、SVN的简介配置库( Repository )
3、 SVN的核心是配置库,储存所有的数据,配置库按照文件树形式储存数据包括文件和目录,任意数量的客户端可以连接到配置库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。最特别的是 Subversion 会记录配置库中的每一次更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。工作副本(WorkSpace) 与位于中央配置库相对应的是每个人的工作空间,它是每个程序员工作的地方,程序员从配置库拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行、测试等操作,并把新版本的代码从这里提交回配置库库中。1、SVN的简介此工具可以及时了解
4、团队中其他成员的进度; 配置库配置库 工作副本工作副本CheckoutCommit主目录2、SVN的客户端安装将SVN的安装包存放好后,安装SVN客户端; 双击安装包Next选中“I accept the terms in the license Agreement”NextInstall选中“Show Changelog”Finish点击“Yes”按钮(安装TortoiseSVN 没什么特别,一路ok)重新启动电脑; 当TortoiseSVN安装成功后,默认情况下会在鼠标右键菜单自动集成SVN Checkout和TortoiseSVN这两个选项;可以下载TortoiseSVN的中文语言包,根
5、据向导运行语言包安装程序,重新启动程序后,在设置中设置语言即可看到中文菜单。 备注:所有的TortoiseSVN命令都是通过windows资源管理器的右键菜单执行。安装程序包,所有安装程序使用缺省的模式,注意路径中不能有空格,并且尽量避免复制操作。2、SVN的安装安装完成1、需要初始化,本地要迁出配置库的内容,在桌面指定位置进行右击,菜单选择SVN Checkout(检出);2、弹出URL of repository栏中输入您要访问的配置库路 径,https:/192.168.1.91/svn/doc-https:/192.168.1.91/svn/doc-产品支持产品支持(此路 径为产品支持
6、部配置库路径)3、默认点击ok确认,如下图所示:2、SVN的安装服务器上的服务器上的ip+ip+端端口号口号+ +工程名称工程名称存放在本地的存放在本地的文件夹路径文件夹路径2、SVN的安装在弹出对话框中选择永久接受,这样可以避免每次提示选择(图一),然后验证身份,输入用户名和密码,可以保存身份认证(图二)图一图二2、SVN的安装此时就会检索SVN上已存在的相关文件,点击ok检出即可主目录版本号过点击ok,客户端版受本控制的文件及目录与服务端版本一致。3、SVN的相关图标 一个新检出的工作副本使用绿色的对勾做重载; 表示Subversion状态正常,受版本控制; 当我们开始编辑一个文件后,图标
7、将变成红色感叹号。通过这种方 式可以很容易地看出我们对哪些文件进行了修改操作,但是还没 有提交到版本库中; 如果在提交的过程中出现了冲突,图标将变成黄色感叹号; 如果我们拥有了一个文件的锁,并且Subversion状态是正常,这个重载 图标将提醒我们:如果不使用该文件的话,请进行释放锁操作,允许其 他成员提交对该文件的修改; 这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制 中删除,或是该文件夹下某个受控的文件丢失了; 加号告诉我们有一个文件或是目录已经被计划加入版本控制;主目录4、SVN的日常使用CheckOut(检出)作用:将版本库中的内容检出到本地工作副本,来初始化检出一份
8、本地的工作副本;4、SVN的日常使用CheckOut的注意事项检出深度:1.全递归(默认选择) 检出完整的目录树,包含所有的文件或子目录。2.直接节点,包含目录 检出目录,包含其中的文件或子目录,但是不递归展开子目录。3.仅文件子节点 检出指定目录,包含所有文件,但是不检出任何子目录。4.仅此项 只检出目录,不包含其中的文件或子目录。省略外部引用:如果项目含有外部项目的引用,而这些引用我们不希望同时检出,请选中忽略外部项目复选框。如果选中了这个复选框,更新的时候要使用命令”更新至版本Update to Revision”4、SVN的日常使用SVN Update 更新SVN Commit 提交T
9、ortoiseSVN 4、SVN的日常使用SVN Update(SVN更新)当需要从SVN中心版本库中更新时,用此命令可以更新你的工作拷贝,因为每个人都有自己的工作拷贝,在你对项目文件进行操作的同时,项目组其他成员也在对项目进行编辑并提交操作,这样项目库就随着每次提交随时发生着变化,所以在每次编辑操作之前都要执行Update命令,以保证我的本地工作拷贝与项目库的版本内容一致。作用:更新工作副本使其成为版本库中的最新版本;SVN将显示出更新的文件和更新的次数。 返回4、SVN的日常使用 选中TortoiseSVN项后,会出现如下图所示的众多菜单项。下面将分别对各项进行详细介绍。 点击您要查看的项
10、查看版本日志进入项目库撤销此次更改查看图形版本信息解决冲突更新到项目库最新版本文件或目录的分支路径的切换创建补丁文件或目录的合并导出文件到本地重新定位应用补丁添加文件到项目库主目录获取锁定解除锁定设置4、SVN的日常使用ADD 添加向配置库中增加一个新的内容时,将需要增加的文件/文件夹(在新文件/文件夹所在父文件夹点击右键),在菜单中选择“添加Add”命令;添加文件夹选中要添加的文件夹4、SVN的日常使用这时本地硬盘test文件夹图标显示如下图:需要鼠标选中本地硬盘添加或修改过的文件/文件夹选择“SVN Commit”项,(此时将本地硬盘test文件下修改的内容都上传到配置库中,若只上传单个文
11、件,只需点中单个文件上传即可)返回4、SVN的日常使用 SVN Commit(SVN提交)对本地工作拷贝编辑完之后,就可以执行Commit提交命令将新文件提交到服务器上。点击该菜单项会出现如下图所示的对话框,确认后点击ok即可,如下图所示:不要忘了写日志,方便查看每次都做了什么改动返回4、SVN的日常使用查看日志(一)随着项目的开发,项目库内的文件和目录的版本都在发生着各自的变化,点击此菜单项会显示该文件或目录的所有版本信息。什么人修改什么人时间修改修改了什么内容4、SVN的日常使用查看日志(二)在查看文件或目录的版本日志时,查看本地的编辑的文本内容与其历史版本之间的差异,鼠标选中修改的文档右
12、键选择“TortoiseSVN”的“Show log”项显示日志对话框,在日志对话框选择要比较的历史版本,后右键选择“Compare with working copy”项;返回4、SVN的日常使用Repobroswer项目库(一) 这是一个版本库浏览工具,点击进入之后会出现如下输入版本库地址的对话框;输入版本库地址4、SVN的日常使用Repobroswer项目库(二)进入项目库后,显示该项目的所有目录信息。见下图项目目录目录当前版本对此目录最近操作人员信息对此目录最近一次修改的时间项目目录目录当前版本返回4、SVN的日常使用查看图形日志信息以图形化的方式显示日志信息的详细演变过程,每一种标志
13、和颜色代表每次所执行的操作。返回4、SVN的日常使用Revert撤销操作Revert还原在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中要还原的文件夹右键选择“TortoiseSVN”的“Revert”项撤销本地所有未提交的修改,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。注意:还没有执行Commit操作之前执行此命令才可以,否则无效;返回点击0k4、SVN的日常使用Update to revision 获取历史版本鼠标选中文件夹test右键选择“TortoiseSVN”的“Update to revision”项,后系统提示需要选择下载的版本,如下左图所
14、示: “Revision”栏中“HEAD revision”为最新版本,“Revision”手工输入版本号,也可点击“Show log”按钮选择需要的版本内容,选择版本40后,点击“OK”按钮,系统弹出如右下信息框:返回点击“OK”按钮,系统开始下载文件,下载完毕后如上图提示4、SVN的日常使用冲突冲突是指:团队协同工作时,当多位团队成员同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况;产生原因:当团队协同工作的时候,多位团队成员同时操作一个文件;团队成员A操作完成后,将该文件提交到SVN上,此时其他团队成员的本地文件与SVN上的文件版本不一致,当团队成
15、员B操作完成并对文件进行提交操作时,就会产生冲突;冲突的解决方案:面对文件冲突,我们可以选择以下两种方式解决冲突:使用工具解决冲突;用revert放弃所做的修改; 解决冲突后,要选择已解决的(resolved)解决后,带问号的文件将自动删除,最后选择commit提交到SVN;4、SVN的日常使用发生冲突 当两个人同时编辑一个文件时,一个人先提交,后一个人再提交时就会出现冲突,并提示你必须先更新你的工作拷贝后才能进行修改。如下图所示:4、SVN的日常使用出现冲突的文件自己修改过的原始文件其他人修改过的文件中冲突的地方将使用“”标示出来,文件除了你的最新修改外没有别的东西;查找以字符串”标示出来当
16、你更新你的工作副本时,你的Subversion客户端从服务器接收到的。这个文件对应与版本库中的最新版本发生冲突后可以看到一些文件被修改过的标记 4、SVN的日常使用查看被修改过的记录 4、SVN的日常使用解决冲突手工修改冲突的内容后,右键选择“TortoiseSVN”的“Resolved”项,删除冲突所产生三个文件(也可手动删除这三个文件),最后选择commit提交到SVN;如下图所示返回4、SVN的日常使用分支与标记、合并分支与标记:版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分叉线上,这条线被称为分支。特性分支:分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当
17、新的特性足够稳定之后,开发品的分支就可以合并回主分支里(主干)。维护分支:分支也常用来维护产品的历史版本。发布前分支:在发布前创建分支以更快在主干上增加新特性。 在这里我们推荐只为发布创建长周期分支。在这种模式下,新开发的代码总是被提交到主干上。只有在发布分支上修改缺陷时才需要合并,而且这种合并是从分支合并回主干。而只有非常严重的缺陷修复才会从主干合并到发布分支上。这种模式使代码一直处于可发布状态。版本控制系统的另一个特性是能够标记特殊的版本(例如某个发布版本),所以你可以在任何时候重新建立一个特定的构件和环境。这个过程被称作标签。在 SVN 中分支和标记实际上都是一个复制操作,区别是一个可以
18、继续修改内容,一个禁止修改内容。合并:在一些阶段,你可能需要将分支上的修改合并到主干,或者将主干的修改合并到分支。4、SVN的日常使用分支与合并(分支)在维护一个项目组的文档,有一天另一个项目组也要这份文档,但有些不同的改动,因为他们有不同的需求,这时就可以对这个文档建立一个分支。如果两个项目的并发开发是基于同一个原始版本的拷贝,而这两个项目又互不相扰的独立开发,那么这两条开发线对于原始版本来说,就是项目的分支,而原始版本就是项目的主干。点击“Branch/Tag”进入下图界面:选择路径填写状态信息新建分支新建分支对话框建好的分支返回4、SVN的日常使用分支与合并(合并)分支完成各自的工作后,
19、最后还需要把分支合并到项目的主干上来。合并的方式有两种:A 将主干的改动合并到分支上,需要在分支的工作副本下进行合并,合并的范围是需要从主线上上次的版本(建立分支时)到当前主线上的最新版本。但如果主线和分支都更改了相同的文件,合并后会产生冲突,然后可以解决冲突、提交;B 相反,如果是从分支合并到主干上,则应在主干的工作副本下进行合并,合并的范围从分支上上次合并的版本到当前分支上的最新版本,合并后可能会产生冲突,原因如上种情况所述。然后解决冲突后提交。点击“Merge”,进入下图所示:点击“Merge”便可进行合并,如果是将主干合并到分支也是执行相同的操作。需要提醒的是,不管是分支还是合并,每一
20、次的操作都会导致版本号的变化,这些变化都保存在log日志中,以便我们随时查阅并恢复到以前的版本。4、SVN的日常使用分支与合并(合并)返回4、SVN的日常使用refresh刷新、delete删除刷新:刷新服务器目录如下左图;删除:删除文件后,鼠标选中文件夹右键选择“SVN Commit”项进行提交,提交方式同增加文件的提交方式,提交后则将新文件从配置库中删除,如右图:返回4、SVN的日常使用rename重命名重命名:鼠标选中要修改的文本文件右键选择“TortoiseSVN”的“rename”项,系统弹出如下信息框(左图),在New name框中输入新文件名后点击“OK”按钮(右图),将出现重命
21、名后的文件,原文件被删除,将它们提交后重命名生效; 返回重命名4、SVN的日常使用Get lock(锁定)当项目需要时可以在你本地硬盘中将你迁出的内容进行锁定,选中要被锁定的文件右键选择“TortoiseSVN”的“Get lock”项进行锁定(锁定后他人将无法修改此文件),系统弹出锁定信息框,如下图所示:点击“OK”按钮提交即可文本文件锁定,锁定后显示如下: 返回锁定4、SVN的日常使用release lock(解锁) 解锁时选中被锁定的文件右键选择“TortoiseSVN”的“Release lock”项进行解锁;返回锁定4、SVN的日常使用Switch 切换文件创建分支后,可通过Swit
22、ch选择在主干工作或者在分支工作;在你的本地硬盘选中已从配置库中获取的文件,右键选择“TortoiseSVN”的“Switch”项,系统提示需要选择配置库中的路径,如下左图所示:点击“OK”按钮,则将你选中的文件夹内容更新为你输入的路径中的内容,转换访问路径。 返回注意(1)切换操作起来就象更新,因为它没有丢弃我们在本地做的修改。 (2)在工作副本里,当我们进行切换的时候,任何没有提交过的修改都会被混合,所以需要在切换前进行提交。查看详情4、SVN的日常使用Relocate 重新定位它与switch的不同在于switch用于在同一个版本库内不同分支之间的切换,当服务器地址或者版本库名称发生变化
23、时,可以用命令来更新工作拷贝;而relocate用于版本库访问地址变更时,重新定位版本库;例如,由于SVN服务器更换到另一台主机上,这是SVN服务器的地址改变了,那么各客户端就无法连接SVN服务器了,这时各客户端就需要执行relocate,将本地工作区的连接到新的服务器上去而如果同一个版本库内,如果有多个分支,比如你现在正在trunk上开发,但需要切换到某个分支上开发,那么你可以用switch来进行这个切换操作,这时SVN会比较trunk和这个分支之间的差异,将差异部分传送到你的本地工作区,而不用将整个分支传送给你,从而避免巨量数据的传输。switch操作之后,你所进行的update、comm
24、it操作都变成了针对那个分支,当你在分支上的工作完成后,还可以再次switch回trunk。 返回4、SVN的日常使用Import导入、Create(Apply)patch创建及应用补丁Import导入文件或目录操作的介绍,Import 导入操作对话框,见下图,点击“OK”后,就可以把本地文件或文件夹导入到所选的服务器端目录下;浏览选择服务器端目录不要忘记写日志返回Create(Apply)patch创建及应用补丁:如果某个文件没有修改的权限,但是迫于形势,又必须对这个文件进行修改,这时可以用Create patch 创建补丁,然后将创建的补丁发给对此目录有写权限的工作人员,相关人员执行App
25、ly patch后,修改就会被提交到服务器上。4、SVN的日常使用Export导出(去除svn标志)选中需要取消SVN标记(脱离版本控制)的文件夹(其子文件夹也要取消相应标记)右键选择“TortoiseSVN”的“Export”项,系统弹出导出路径的信息框,如下图所示:选定你要导出的路径,若选择E盘则会保存一份干净的文件到E盘。选择上图中的“Export unversioned files too”复选框表示将本地不处于版本控制下的文件一起导出;返回4、SVN的日常使用Setting 设置在桌面指定位置右击选中设置,用户可以根据需要选择系统的语言显示、清除已保存的数据、显示特征标志等;例如:系
26、统语言显示选项4、SVN的日常使用Setting 设置 特征标志选择:不少用户在使用SVN“检出”功能后,本地工作副本没有出现特征符号绿色勾或其他特征符号,这是由于系统无法识别默认的状态缓存,需要人工手推选择状态缓存方式,改变状态缓存方法,在设置中选择“外观与样式”的“图标叠加”模块,再在“状态缓存”中选择“Windows外壳; 保存清除;在对系统保存认证后相应需要对认证进行清除,清除功能仍然在设置模块中,在保存清除中共可以对本地四种已保存数据进行清除,分别有URL历史记录、日志信息、窗口大小、认证数据,在对这些数据完全清理后系统自动恢复到“零”状态。因此,用户在离机后也别忘记将保存认证数据清
27、除掉,以保障资料的安全性,4、SVN的日常使用Setting 设置SVN系统有一个似过滤器的功能,在本地工作副本中用户可以根据需要过滤一些不需要上传到服务器的文件,这个功能就是“全局忽略样式”,例如:忽略上传文件;忽略样式对提交文件扩展名进行选择性忽略,忽略格式通常以*.X形式被系统识别,各条目之间以空格分隔。注意:当用户在本地工作副本中对新添加文件采用了系统添加功能操作,忽略样式功能对本地副本中的文件将不起作用;另外还有一种情况,如果已经将想忽略的文件提交到了SVN系统上,是无法进行忽略的。 返回总结1、SVN使用要诀先更新后提交;这样能在提交前发现是否和别人的冲突;如果冲突,检查文件,进行
28、协商修改;2、提交的时候必须写有意义的日志信息;3、要经常显示日志,来查看和进行相关操作;4、SVN的路径是区分大小写的;5、不能单独一个文件检出,只能检出相应的目录,SVN的工作模式可以多人同时检出,只在提交的时候提示冲突,要求解决冲突;6、还原仅能取消本地所做的变更,已经提交到服务器上的变更采用撤销操作;7、注意在 svn 项目上复制,重命名文件时要使用 svn 的操作命令,不要使用操作系统的复制粘贴;8、如无必要尽量不使用锁定;总结 svn使用注意事项总结 svn说明建议 建议:1、开发人员在参与一个项目的时候,首次可以将该项目下所有资料都进行检出,一个是便于查看,另一个是保证目录结构的
29、统一和完整性,以免提交的时候,由于目录的混乱导致提交出错;2、尽量不要对目录进行复制,系统最好设置成,文件夹选项-查看-显示隐藏的文件和文件夹;如需要复制整个目录,有两种方法,一种是直接用版本库浏览器进行操作,右键是可以直接复制的。将一个项目的源码复制到另一项目中时,不能直接复制,要清除那此隐藏的SVN文件夹,最好是在SVN上使用导出功能。否则,易在提交文件时错误提交到原来项目之上,因为导出目录的时候,SVN会在所有与配置库关联的每个文件夹下都生成一个.svn的文件夹,这个SVN的文件夹中就记录了你当前工作副本的版本号,关联的配置库路径等信息,如对整个文件夹进行复制,会将该文件夹也复制,这样就算你拷贝到别的文件夹下,所关联的配置库信息还是原来的,提交还是会提交到原先关联的配置库路径的; 说明:如果该目录没有写的权限时,会在提交的时候,显示一条错误信息,看到后面的错误编码是403错误,一般是这个目录没有写的权限,需申请;同理,如果对该目录没有读的权限,在版本库浏览器中,点击该目录,也是会出现403错误;但现在,一般如果是项目组成员的话,一般都会开通各个目录的读权限的;谢谢!演讲完毕,谢谢观看!
限制150内