SVN使用说明

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SVN使用说明Version1.0SVN简介SVN登录方法工作周期服务端其他相关操作分支与合并SVN与Eclipse的集成使用SVN与.net的集成使用一、SVN的简单介绍配置管理工具Subversion,简称为SVN,是一个开源的版本控制系统,可以实现文件及目录的保存及版本回溯。SVN将文件存放在中心版本库里,它可以记录文件和目录每一次的修改情况,这样我们就可以籍此将数据恢复到以前的某个版本,并可以查看更改的细节。也就是说,一旦一个文件被传到SVN上面,那么不管对它进行什么操作,SVN都会有清晰的记录,即使它在N天前被删除了,也可以被找回来。SVN是一种集中的分享信息的系统,它的核心是版本库,储存所有的数据,版本库按照文件树形式储存数据-包括文件和目录,任意数量的客户端可以连接到版本库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。二、登录SVN版本库的方法首先在本机安装SVN客户端,客户端软件上的TortoiseSVN可以从@172.16.1.2/办公软件/SVN安装工具/SVN客户端安装工具上下载,里面还放了一个汉化包。具安装方法详见《配置管理工具应用指南》。安装完成之后,点击鼠标右键,会出现下图点击Repo—browser版本库浏览:这是个版本库的浏览工具,点击它之后,会出现下面的小对话框:在URL里面输入你要键接的版本库,输入方法为:svn://172.16.1.8/所在版本库名称,如微机监测组的配置库为:svn://172.16.1.8/微机监测(记得svn是小写字母的),点“OK”进入登录界面。如果以前登录过,SVN会自动记录登录历史。登录界面如下:输入用户名和密码即可进入所在的版本库。登录帐号由配置管理员分配,客户端不能修改密码,建议选择“Saveauthentication”,这样下次不用输入帐号便会自动登录,且在版本库里面的每一个操作也不用输入帐号来进行验证。登录后的界面如下:项目目录此目录的当前版本对此目录作最近操作的人员名称在此目录做最近一次修改的时间这是微机监测项目的版本库目录结构三、工作周期如何用SVN对本地的一个文件进行版本化的管理?①首先要把该文件添加到版本库。在版本库单击右键→Addfile写Log日志,便于以后查看。对于系统自动生成的日志可以自行修改。注:如果想把一个文件夹里面的所有东西都添加到版本库,有两种方法:在客户端选中该文件夹,单击右键→Import,在Import对话框中,输入你想在版本库中存放的地方,确定即可;在服务端右键→Addfolder。②在客户端新建一个文件夹;然后在服务端,选中刚才添加进去的文件的上一级文件夹,右键→Checkout可以看到从版本库检出的文件被打上了一个√,表示受版本控制。此后对此文件所做的任何操作,只要提交过,都会在服务端被记录保存下来。想查看任何一次的修改情况,只要单击ShowLog即可。③修改该文件后提交编辑保存后,该文件由√变为!,这时可以对此文件执行SVNCommit提交操作,那么编辑的内容便会提交到服务器上,以便大家共享你的工作成果。提交成功后,版本库号会上升一次,同时提交的文件状态由!变为√.注:对于不是只有自己可以修改的文件,每次编辑操作之前,都要对本地工作拷贝执行Update的操作,以保证本地工作拷贝与服务器项目版本库内容保持一致。如果这时有人对它做了修改,修改的内容便同步到你的工作拷贝上。如果你不想要别人的修改,可以执行Updatetorevision(返回到版本),返回到你想要版本,然后再做修改。此时在提交的时候,就会提示存在冲突。④解决冲突解决冲突之前,先Updaten你的工作拷贝,本地工作拷贝变为这时选中第一个文本,右键,在“TortoiseSVN“中选择“Editconflicts”会出现如下图所示,这时你就可以对出现的冲突的文件进行编辑,选定你最终想要的文档。这就是所谓的“Merge”合并操作。在出现冲突以及应用分支时会经常用到合并的功能。合并完毕后,执行Resolved,则新的版本就被生成了。1、Showlog:查看日志点击此按扭,会显示当前目录下的所有文件和目录日志的信息。四、服务端其他相关操作2、Revisiongraph:版本树显示选中目录,点击它可以把对此目录所做的所有操作以图的形式显示出来,并可以记录每一步都进行了什么操作,相当于“Showlog”的一个图解,如下图所示:表示版本号5是新添加进去的文件修改了文件的名字建立了分支当前该分支的最新版本3、CreateFolder:可以在自己有权限的目录下新建一个文件夹。4、Export:导出用此命令,指定路径,便可导出一个干净的目录树,所谓“干净的”就是导出的文件不受SVN的版本控制。默认的是导出当前版本的目录内容,当然也可以指定你想导出的版本。5、Copytoworkingcopy:把当前目录拷贝到本地工作拷贝这个本地工作拷贝必须是已经受版本控制的文件夹,执行此命令后,当前目录便会在本地工作拷贝显示预添加的符号。如:把“信息平台”执行Copytoworkingcopy到本地工作拷贝的“0过程记录”中,就会出现下图,绿色的对号表示此目录是从服务器上“Checkout”出来的受版本控制的本地工作拷贝,蓝色的加号表示此文件预添加到服务器上。此时对它执行“SVNCommit”命令,信息平台”便会成功提交到服务器上“0过程记录”的目录下面。6、Copyto:拷贝到用此命令可以在当前版本库中建立分支(标签/基线),SVN允许并行的维护文件和目录的分支,各个分支间互相联系,也可以从一个分支复制修改到另一个分支,最终,可以让本地工作拷贝反映到不同的分支上,所以在日常的工作中,可以“混合和比较”不同的开发线。分支与合并将在后面做详细的介绍。四、客户端其他操作Switch:切换把你的工作拷贝切换到另个的URL(服务器目录),服务器端目录有所变化,所存储的文件位置发生了变化,那么对你的工作拷贝进行编辑后就会出现提交不上去的情况,这时就要执行Switch操作,使你的工作拷贝切换到服务器端对应的目录下面,即可再进行提交。Switch操作只限于版本库内的切换。还有,如果在服务端对一个文件重新命名后,而客户端只需更新一下就可以与服务端同步;如果修改前没有更新,则提交的时候会出现错误,此时需用Switch命令,把名字改成服务端的名字即可,然后可在提交,提交后会发现本地工作拷贝既有改明前的文件也有改名后的文件,而且都打上了绿色的对号,此时把老的detelate即可。如果用windows的删除选项,则不能完全的删除,一旦在执行update操作,还能回来。Relocate:重新定位它和Switch的功能是一样的,不同的是,它实现的是版本库与版本库之间的切换。当服务器地址或版本库名称发生变化时,可以用些命令来更新你的工作拷贝。Add:添加当你的工作拷贝出现一个新的文件时,执行此命令可以让这个新的文件添加到服务器端。当然也可以在服务器端的用“Addfile”、“Addfolder”来实现文件的添加。Create(Apply)patch创建(应用)补丁如果你对这个文件没有修改的权限,但是迫于形势,你又必须对这个文件进行修改,这时你就可以用Createpatch创建补丁,然后把你创建的补丁发给对此目录有写权限的工作人员,他执行Applypatch后,你所做的修改就会被提交到服务上。Import:导入这是一种批量向服务器上添加文件的方法,可以把本地的文件或文件夹添加到服务器上的某个目录下面。值得注意的是,本机导入到目标服务器上之后,本机目录并没有改变,也并不是工作拷贝,如果要对文件再做修改并能提交到服务器上的话,必须先从服务器上把文件“checkout”出来之后,再做修改提交(即必须先建立本地工作拷贝)Export:导出在客户端用此命令,可以把工作拷贝上的文件拷贝到本机其他地方;在服务器端用此命令,指定路径,便可导出一个干净的目录树,所谓“干净的”就是导出的文件不受SVN的版本控制。默认的是导出当前版本的目录内容,当然也可以指定你想导出的版本。GetLock:锁定如果你把一个文件锁定,那么只有你可以提交这个文件。其他用户的提交都会被拒绝,直到你释放了这个锁。一个被锁定的文件不能在库中进行任何形式的合并。所以它不能除锁的拥用者之外的人删除或更名。ReleaseLock:解锁如果你对自己锁定的文件进行提交,选中的文件的锁就会被自动解除,就算你从没有修改过。使用ReleaseLock命令可以手动释放锁定,你可以对一个文件夹来使用这个命令释放其中的所有锁定项。五、分支与合并1、分支的概念先用例子来说明下分支的概念:假定tc.c发行版1.0已完成。正在继续开发tc.c,计划在2个月后发行1.1的版本。不久客户开始抱怨说代码有些问题,检出了1.0的发行版,找到了这个错误(这将会有一个小小的更正)。但是,当前代码的版本是处在一个不稳的状态,并且在下一个月才能有希望稳定下来。这样就没有办法基于最新代码去发行一个修复错误的版本。这种情况下就可以去创建一个分支(branch),分支所有文件是构建于tc的1.0发行版。可以修改这分支而不影响到主干。当修订完成时,你可以选定是否要把它同主干合并或继续保留在这个分支里。再比如说,如果我们在维护一个项目组的文档,但有一天,另一个项目组也要这份文档,但要有一些不同的改动,因为他们有不同的需要,这个时候,也可以对这个文档建立一个分支。因此,分支可以是项目的分支也可以是个人私有的分支。项目分支:如果两个项目的并发开发是基于同一个原始版本的拷贝,且这两个项目又互不相扰的进行独立开发,那么这两条开发线对于原来的那个原始版本来说,就是项目分支,而原始版本就是项目主干。私有分支:如果多个人共同负责一个模块,当出现两个人同时修改一个文件的情况时,就会不断的出现冲突,开发人员就要花大量的时间解决这些冲突,而在分支上工作避免了频繁的解决冲突。这种分支也叫作私有分支,个人可以在主干上建立一个私有分支出来,当开发到一定的阶段以后,可以再对自己分支与主干进行合并,在与主干进行合并的同时,也能关注到其他人在这一段时间内对主干做的修改。分支开发完成之后可以根据需要和主干进行合并。2、分支的建立分之的建立有两种方式:在本地工作拷贝右键选“Branch/Tag”跳出下面的对话在框:输入名字,点击OK即可在版本库看到一个该名字的文件夹,分支建立成功。在服务端选中一个目录后,右键点击“copyto”会出现一个对话话框,如下图所示,在里面输入要建立新分支的地址,分支也可以建立。所谓的分支其实就是一个拷贝,把原目录内容拷到一个新的目录下面,但是,这个拷贝并不是真正意义上的拷贝数据,它只是建立了一个已存在目录树的入口,相当于一个硬链接,如果提交一个文件的修改,只有这个文件改变了,其余的文件还是作为原来的文件的链接存在。也就是说,SVN里面,分支和标签其实都是“廉价的拷贝”,所以,在执行拷贝命令的时候,花费的时间与空间代价很小。3、分支的合并上面已经提到了,不管是项目分支还是个人私有分支,在工作了一段时间后都可以根据需要和主干进行合并,合并的方法为:(1)如果是需要将主线的改动合并到分支上,需要在分支的工作拷贝下进行合并,合并的范围是需要从主干上上次合并的版本到当前主干上最新的版本,如果主线和分支都修改了相同的文件,合并后会出现冲突,然后解决冲突,如果主线修改但是分支没有修改,则主线上合并的变更内容会增加到当前副本中,提交,如果是第一次合并,则起始版本号是上次建立分支的版本号(2)如果是需要将分支的改动合并到主线上,需要在主线的工作副本下进行合并,合并的范围是需要从分支上上次合并的版本到当前分支上最新的版本,合并后会出现冲突,然后解决冲突,提交,如果是第一次合并,则起始版本号是上次建立分支的版本号。主干路径上一次合并的版本或是建立分支时候的版本主干当前的版本自己的分支,即合并保存的路径点击“Merge”便可把合并的信息保

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功