您好,欢迎访问三七文档
SVN内部培训资料目录1SVN的简介2SVN的安装3SVN的相关图标4SVN的日常使用5SVN的总结注意事项1、SVN的简介SVN全名Subversion,即版本控制系统,是一个跨平台的软件,支持大多数常见的操作系统。它作为一个开源的版本控制系统,管理随时间改变的数据。而这些数据都放置在一个中央资料档案库(repository)中,这个档案库类似于一个普通的文件服务器,记录着每一次文件变动的过程,便于将档案恢复到旧的版本或是浏览文件的变动历史。用来管理任何类型的文件,其中包括了程序源码。TortoiseSVN:是SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端。SVNService.exe:是专为SubVersion开发的一个用来作为Win32服务挂接的入口程序。1、SVN的简介SVN的意义记录每个文件的成长细节,开发过程中保存产品的中间结果,实现了信息的共享;所有成员维护的实际是同一个版本库,无需专人维护所有文件的最新版本,即避免传统发送资料的时间又可以防止文件版本混乱;及时了解团队中其他成员的进度,协同工作,提高团队工作效率,利于团队之间成果的复用;对任两个中间结果进行比较,比较不同版本间的细微差别;1、SVN的简介配置库(Repository)SVN的核心是配置库,储存所有的数据,配置库按照文件树形式储存数据-包括文件和目录,任意数量的客户端可以连接到配置库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。最特别的是Subversion会记录配置库中的每一次更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。工作副本(WorkSpace)与位于中央配置库相对应的是每个人的工作空间,它是每个程序员工作的地方,程序员从配置库拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行、测试等操作,并把新版本的代码从这里提交回配置库库中。1、SVN的简介此工具可以及时了解团队中其他成员的进度;配置库工作副本CheckoutCommit主目录2、SVN的客户端安装将SVN的安装包存放好后,安装SVN客户端;双击安装包→Next→选中“IacceptthetermsinthelicenseAgreement”→Next→Install→选中“ShowChangelog”→Finish→点击“Yes”按钮(安装TortoiseSVN没什么特别,一路ok)重新启动电脑;当TortoiseSVN安装成功后,默认情况下会在鼠标右键菜单自动集成SVNCheckout和TortoiseSVN这两个选项;可以下载TortoiseSVN的中文语言包,根据向导运行语言包安装程序,重新启动程序后,在设置中设置语言即可看到中文菜单。备注:所有的TortoiseSVN命令都是通过windows资源管理器的右键菜单执行。安装程序包,所有安装程序使用缺省的模式,注意路径中不能有空格,并且尽量避免复制操作。2、SVN的安装安装完成1、需要初始化,本地要迁出配置库的内容,在桌面指定位置进行右击,菜单选择SVNCheckout(检出);2、弹出URLofrepository栏中输入您要访问的配置库路径,产品支持(此路径为产品支持部配置库路径)3、默认点击ok确认,如下图所示:2、SVN的安装服务器上的ip+端口号+工程名称存放在本地的文件夹路径2、SVN的安装在弹出对话框中选择永久接受,这样可以避免每次提示选择(图一),然后验证身份,输入用户名和密码,可以保存身份认证(图二)图一图二2、SVN的安装此时就会检索SVN上已存在的相关文件,点击ok检出即可主目录版本号过点击ok,客户端版受本控制的文件及目录与服务端版本一致。3、SVN的相关图标一个新检出的工作副本使用绿色的对勾做重载;表示Subversion状态正常,受版本控制;当我们开始编辑一个文件后,图标将变成红色感叹号。通过这种方式可以很容易地看出我们对哪些文件进行了修改操作,但是还没有提交到版本库中;如果在提交的过程中出现了冲突,图标将变成黄色感叹号;如果我们拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标将提醒我们:如果不使用该文件的话,请进行释放锁操作,允许其他成员提交对该文件的修改;这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了;加号告诉我们有一个文件或是目录已经被计划加入版本控制;主目录4、SVN的日常使用CheckOut(检出)作用:将版本库中的内容检出到本地工作副本,来初始化检出一份本地的工作副本;4、SVN的日常使用CheckOut的注意事项检出深度:1.全递归(默认选择)检出完整的目录树,包含所有的文件或子目录。2.直接节点,包含目录检出目录,包含其中的文件或子目录,但是不递归展开子目录。3.仅文件子节点检出指定目录,包含所有文件,但是不检出任何子目录。4.仅此项只检出目录,不包含其中的文件或子目录。省略外部引用:如果项目含有外部项目的引用,而这些引用我们不希望同时检出,请选中忽略外部项目复选框。如果选中了这个复选框,更新的时候要使用命令”更新至版本UpdatetoRevision”4、SVN的日常使用SVNUpdate更新SVNCommit提交TortoiseSVN4、SVN的日常使用SVNUpdate(SVN更新)当需要从SVN中心版本库中更新时,用此命令可以更新你的工作拷贝,因为每个人都有自己的工作拷贝,在你对项目文件进行操作的同时,项目组其他成员也在对项目进行编辑并提交操作,这样项目库就随着每次提交随时发生着变化,所以在每次编辑操作之前都要执行Update命令,以保证我的本地工作拷贝与项目库的版本内容一致。作用:更新工作副本使其成为版本库中的最新版本;SVN将显示出更新的文件和更新的次数。返回4、SVN的日常使用选中TortoiseSVN项后,会出现如下图所示的众多菜单项。下面将分别对各项进行详细介绍。点击您要查看的项查看版本日志进入项目库撤销此次更改查看图形版本信息解决冲突更新到项目库最新版本文件或目录的分支路径的切换创建补丁文件或目录的合并导出文件到本地重新定位应用补丁添加文件到项目库主目录获取锁定解除锁定设置4、SVN的日常使用ADD添加向配置库中增加一个新的内容时,将需要增加的文件/文件夹(在新文件/文件夹所在父文件夹点击右键),在菜单中选择“添加Add”命令;添加文件夹选中要添加的文件夹4、SVN的日常使用这时本地硬盘test文件夹图标显示如下图:需要鼠标选中本地硬盘添加或修改过的文件/文件夹选择“SVNCommit”项,(此时将本地硬盘test文件下修改的内容都上传到配置库中,若只上传单个文件,只需点中单个文件上传即可)返回4、SVN的日常使用SVNCommit(SVN提交)对本地工作拷贝编辑完之后,就可以执行Commit提交命令将新文件提交到服务器上。点击该菜单项会出现如下图所示的对话框,确认后点击ok即可,如下图所示:不要忘了写日志,方便查看每次都做了什么改动返回4、SVN的日常使用查看日志(一)随着项目的开发,项目库内的文件和目录的版本都在发生着各自的变化,点击此菜单项会显示该文件或目录的所有版本信息。什么人修改什么人时间修改修改了什么内容4、SVN的日常使用查看日志(二)在查看文件或目录的版本日志时,查看本地的编辑的文本内容与其历史版本之间的差异,鼠标选中修改的文档右键选择“TortoiseSVN”的“Showlog”项显示日志对话框,在日志对话框选择要比较的历史版本,后右键选择“Comparewithworkingcopy”项;返回4、SVN的日常使用Repo—broswer项目库(一)这是一个版本库浏览工具,点击进入之后会出现如下输入版本库地址的对话框;输入版本库地址4、SVN的日常使用Repo—broswer项目库(二)进入项目库后,显示该项目的所有目录信息。见下图项目目录目录当前版本对此目录最近操作人员信息对此目录最近一次修改的时间项目目录目录当前版本返回4、SVN的日常使用查看图形日志信息以图形化的方式显示日志信息的详细演变过程,每一种标志和颜色代表每次所执行的操作。返回4、SVN的日常使用Revert撤销操作Revert还原在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中要还原的文件夹右键选择“TortoiseSVN”的“Revert”项撤销本地所有未提交的修改,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。注意:还没有执行Commit操作之前执行此命令才可以,否则无效;返回点击0k4、SVN的日常使用Updatetorevision获取历史版本鼠标选中文件夹test右键选择“TortoiseSVN”的“Updatetorevision”项,后系统提示需要选择下载的版本,如下左图所示:“Revision”栏中“HEADrevision”为最新版本,“Revision”手工输入版本号,也可点击“Showlog”按钮选择需要的版本内容,选择版本40后,点击“OK”按钮,系统弹出如右下信息框:返回点击“OK”按钮,系统开始下载文件,下载完毕后如上图提示4、SVN的日常使用冲突冲突是指:团队协同工作时,当多位团队成员同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况;产生原因:当团队协同工作的时候,多位团队成员同时操作一个文件;团队成员A操作完成后,将该文件提交到SVN上,此时其他团队成员的本地文件与SVN上的文件版本不一致,当团队成员B操作完成并对文件进行提交操作时,就会产生冲突;冲突的解决方案:面对文件冲突,我们可以选择以下两种方式解决冲突:使用工具解决冲突;用revert放弃所做的修改;解决冲突后,要选择已解决的(resolved)解决后,带问号的文件将自动删除,最后选择commit提交到SVN;4、SVN的日常使用发生冲突当两个人同时编辑一个文件时,一个人先提交,后一个人再提交时就会出现冲突,并提示你必须先更新你的工作拷贝后才能进行修改。如下图所示:4、SVN的日常使用出现冲突的文件自己修改过的原始文件其他人修改过的文件中冲突的地方将使用“”标示出来,文件除了你的最新修改外没有别的东西;查找以字符串开头的行;其中,=======前的内容为本地硬盘中文件的内容,=======后的内容为配置库中文件的内容,在你做最后修改之前所检出的文件;“”标示出来当你更新你的工作副本时,你的Subversion客户端从服务器接收到的。这个文件对应与版本库中的最新版本发生冲突后可以看到一些文件被修改过的标记4、SVN的日常使用查看被修改过的记录4、SVN的日常使用解决冲突手工修改冲突的内容后,右键选择“TortoiseSVN”的“Resolved”项,删除冲突所产生三个文件(也可手动删除这三个文件),最后选择commit提交到SVN;如下图所示返回4、SVN的日常使用分支与标记、合并分支与标记:版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分叉线上,这条线被称为分支。特性分支:分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当新的特性足够稳定之后,开发品的分支就可以合并回主分支里(主干)。维护分支:分支也常用来维护产品的历史版本。发布前分支:在发布前创建分支以更快在主干上增加新特性。在这里我们推荐只为发布创建长周期分支。在这种模式下,新开发的代码总是被提交到主干上。只有在发布分支上修改缺陷时才需要合并,而且这种合并是从分支合并回主干。而只有非常严重的缺陷修复才会从主干合并到发布分支上。这种模式使代码一直处于可发布状态。版本控制系统的另一个特性是能够标记特殊的版本(例如某个发布版本),所以你可以在任何时候重新建立一个特定的构件和环境。这
本文标题:SVN培训资料
链接地址:https://www.777doc.com/doc-960574 .html