您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > SVN-版本控制软件
svn文档1svn:版本控制软件在现实的软件开发中有可能遇到的问题:代码管理混乱备份多个版本,占用磁盘空间大解决代码冲突困难容易引发BUG难于追溯问题代码的修改人和修改时间难于恢复至以前正确版本无法进行权限控制项目版本发布困难2Svn的安装参照SVN安装界面.doc文件3创建仓库3.1仓库的位置F:\work\course\svn\repository\svn3.2利用svnadmin–create命令创建仓库上面的命令指的是在指定的目录下创建一个仓库。3.3库里的文件4svn仓库的启动4.1两种启动-1-命令行4.1.1启动命令Svnserve–d–r文件路径4.1.2检查是否启动上面的这个命令可以检查端口号,一般svn默认的端口号是3690.说明该端口号正在被监听4.1.3说明当把命令窗口关闭以后,监听就没有了,所以这种启动方式必须把命令窗口打开。存放版本控制产生的数据脚本代码的存放位置配置文件的位置4.2两种启动-2-windows服务4.2.1执行启动命令sccreateSVN-Servicebinpath=F:\work\course\svn\bin\svnserve.exe--service-rF:\work\course\svn\repository\svndisplayname=SVN-Servicestart=autodepend=Tcpipbinpath为执行命令所在的路径-r为仓库的路径:这里配置的多仓库也就是说可以在svn下建立很多仓库,例如建立itcast仓库访问的时候:svn://localhost/itcast。建立oa,则访问的时候svn://localhost/oa如果路径改为F:\work\course\svn\repository\svn\itcast,只能访问itcast这一个仓库。4.2.2Window服务当成功执行上述的命名以后,就可以在window的服务下面看到类似的内容。4.2.3删除服务scdeleteSVN-Service5svn命令5.1svncheckout命令说明:把仓库中的某一个项目checkout出来svncheckoutsvn://localhost/itcastF:\develop\workroom\user5.1.1建立用户创建一个客户端操作文件夹F:\work\course\svn\develop在该文件夹下建立两个文件夹,代表两个用户user1和user25.1.2利用命令利用命令把itcast仓库checkout到user1目录创建完毕以后user1下会多一个文件夹这说明创建完毕了。5.2svnadd命令在客户端创建一个文件,把该文件加入到该仓库中,加入到版本控制中5.2.1执行命令在客户端user1中新建一个txt文件:a.txt说明:把a.txt加入到了itcast仓库,加入到了版本控制中5.3svncommit说明:当把一个文件加入到指定仓库以后,接下来的操作就是提交。在提交的时候必须写一些说明(可以写这次提交都做了一些什么内容)5.3.1执行命令说明:当执行这个命令的时候失败了。因为用的是匿名用户登录的。在F:\work\course\svn\repository\svn\itcast\conf路径下有一个文件:svnserve.conf该文件有一句这样的描述:#anon-access=read说明:匿名用户只能有读的权限,所以这里应该改一下:anon-access=write当改完以后再次执行次命令的时候:说明命令执行成功了。在itcast仓库中加了一个文件a.txt,版本号为15.3.2user2用户执行checkout命令把a.txt文件checkout到user2中,并且版本为15.3.3User2用户修改a.txt文件5.3.4User2用户commit文件文件a.txt在user2下再次进行修改5.3.5User1用户进行更新把user1下的a.txt文件更新到版本25.3.6当删除掉客户端的一个文件时当删除掉客户端的一个文件时,可以使用svnupdate命令把服务器上的版本download下来。6Tortoisesvn的使用6.1建立仓库1、在F:\work\course\svn\repository\svn路径下建立一个文件夹为itcast2、进入itcast目录,如图所示3、执行完第二步后,在itcast目录中产生了这个目录和用命令行创建的工程的目录是一样的。6.2建立用户在F:\work\course\svn\develop目录下创建两个用户user1和user2,即两个文件夹。6.3点击user1用户,选中checkout把itcast仓库放入到user1中执行完上述操作以后itcast仓库就被下载到了user1中6.4在user1的itcast仓库中创建一个a.txt文件6.5利用svnadd把a.txt添加到版本控制添加完毕以后会出现如下的图标:6.6利用svncommit上传到服务器在执行commit之前还要修改权限的部分。6.7在user2中创建itcast仓库这个时候,user2的icast仓库中已经存在a.txt文件了6.8修改a.txt文件6.9执行commit操作6.9.1在user1用户下针对itcast库的a.txt执行update操作6.10上锁可以针对user1用户中的a.txt文件进行上锁的操作。当输入用户名和密码的时候,就上锁了,上锁的突变如下所示:当用户user2试图再次修改此文件时,会报如下的错误:6.11解锁6.12needs-lock6.12.1a.txt变成needs-locka.txt作如下的操作:添加一个属性:svn:need-lock,值为true,确定以后变成如下的图标:这个图标表明再次修改必须上锁。6.12.2a.txt上锁6.12.3进行修改6.12.4进行commit操作6.13去掉needs-lock属性点击remove就可以了6.14冲突问题6.14.1user1更新a.txt文件6.14.2user2更新a.txt文件6.14.3user1更改a.txt文件6.14.4user2更改a.txt文件6.14.5user1对a.txt进行commit操作6.14.6user2对a.txt进行commit操作当user2对a.txt进行操作的时候,user2操作的a.txt文件并不是最新的。所以报如下的错误。6.14.7对a.txt执行update操作该图标表示文件有冲突了。a.txt.mine表示user2用户最新的a.txt.r11表示提交之前的a.txt.t12表示服务器上最新的6.14.8解决冲突Theirs表示服务器上的Mine表示自己的Merged表示合并以后的版本可以在冲突的那一行点击右键,选择这四个选项中的其中一个。这个时候,Merge就会发生变化。这样就可以解决冲突的问题。6.14.9Resolved当解决完毕以后,告诉svn已经解决完了6.14.10commit7权限7.1权限的配置在itcast库的config目录下有授权的相关内容。7.1.1svnserve.config定义所有认证和授权政策。7.1.1.1anon-access匿名用户的访问权限,应该是什么访问权限都没有anon-access=none7.1.1.2auth-access认证用户授权auth-access=write7.1.1.3password-db指定用户的认证文件为passwd文件password-db=passwd7.1.1.4authz-dbauthz-db=authz指定用户的授权文件为authz。7.1.2password存放项目成员账户信息[users]#harry=harryssecret#sally=sallyssecret等号左边代表用户名,等号右边代表密码,所以可以这么添加:user1=user1pwduser2=user2pwd这样系统中有两个用户user1,user2,密码分别是user1pwd,user2pwd。7.1.3authz复杂的群主授权控制[groups]#harry_and_sally=harry,sally#harry_sally_and_joe=harry,sally,&joegroups是组的意思等号左边的是组名,等号右边的是组的成员所以可以写svn_group=user1把user1加入到svn_group组中#[repository:/baz/fuz]#@harry_and_sally=rw#*=r#[repository:/baz/fuz]:指出针对哪个仓库#@harry_and_sally=rw:针对某一个仓库,对组进行授权#*=r:对除了这个组以外的其他用户进行授权[itcast:/]:针对itcast仓库@svn_group=rw针对svn_group组进行授权user2=rw针对user2用户进行授权*=除了以上用户以外的其他用户都不能授权[itcast:/doc]user1=rw*=以上配置说明:针对itcast仓库的doc目录,只有user1有读写权利,其他的用户都没有。7.2权限的使用当配置完成权限以后,当在user1用户下或者user2用户下修改了一个文件,进行commit的时候,系统会自动提示如下:这个时候只有输入正确的用户名和密码信息才能提交。8svn嵌入myeclipse8.1插件的下载从官网上下载插件,可以从这个网站下载到最新的svn插件。8.2创建插件目录在F:\work\course\svn下创建插件目录myplugins\svn\eclipse,把下载完的解压后的两个文件夹放入到该目录下8.3创建svn.link文件在myeclipse安装的dropins目录下创建svn.link文件Link文件中的pathpath的值就是svn插件的目录所在。8.4重启myeclipse9svn在myeclipse中的使用9.1把库添加到myeclipse中打开如下的视图:准备新建一个资源库的位置输入库的url:itcast库就被导入进来了9.2把svn的项目检出到myeclipse在新建项目的时候,选择从svn上检出项目选择现有资源库的位置检出的项目在myeclipse中9.3对a.txt进行编辑9.4对a.txt进行commit操作9.5Comparewith可以利用Comparewith的功能的子功能基本修订版最新版本的上一个版本利用这个功能可以和以往的版本做对比。9.6RepleaseWith可以选择某一个版本的内容覆盖当前版本的内容9.7把项目添加到svn中新建一个项目,做如下的操作:选择svn把项目保存在itcast资源库9.8分支、合并、切换9.8.1Trunk存放开发的主线,团队成员在开发的时候一直要用这个库中的内容9.8.2Branches存放支线副本:当项目稳定以后,先发布到tags下,如果发现了bug,再从tags下检出到branches下。在该版本下进行bug的修复,把修复完毕的稳定的版本重新发布到tags下。9.8.3Tags存放标签副本,也就是存放稳定版本9.8.4问题:一个公司开发了一个oa系统,随后发布了一个版本v1.0,由于这个版本还是比较成功的,然后客户提出了更多的需求,随后开发团地准备开发下一个版本v2.0,当开发团队在如火如荼的工作的时候,客户突然提出了在v1.0版本有一个bug,需要改进,而且必须把这个改进引入到v2.0版本中。用svn怎么样解决这个问题呢?9.8.5解决9.8.5.1在svn库中建立一个项目oa9.8.5.2让oa成为svn项目9.8.5.3修改权限,让匿名用户具有写的权限9.8.5.4在客户端准备一个oa文件夹9.8.5.5在oa文件夹下建立三个文件夹9.8.5.6把oa里面的内容导入到svn库中9.8.5.7查看仓库的结构从上面可以看出,branches,tags,trunk已经
本文标题:SVN-版本控制软件
链接地址:https://www.777doc.com/doc-2861311 .html