2023年6月30日发(作者:)
Svn项⽬管理⼯具1 svn介绍1.1 项⽬管理中的版本控制问题 通常软件开发由多⼈协作开发,如果对代码⽂件、配置⽂件、⽂档等没有进⾏版本控制,将会出现很多问题:备份多个版本,占⽤磁盘空间⼤解决代码冲突困难容易引发BUG难于追溯问题代码的修改⼈和修改时间难于恢复⾄以前正确版本⽆法进⾏权限控制项⽬版本发布困难1.2 什么是版本控制 版本控制(Revision control)是维护⼯程蓝图的标准做法,能追踪⼯程蓝图从诞⽣⼀直到定案的过程。是⼀种记录若⼲⽂件内容变化,以便将来查阅特定版本修订情况的系统。1.3 svn是什么? SVN(Subversion)是近年来崛起的版本管理⼯具,在当前的开源项⽬⾥(J2EE),⼏乎95%以上的项⽬都⽤到了 SVN。Subversion 项⽬的初衷是为了替换当年开源社区最为流⾏的版本控制软件 CVS,在 CVS的功能的基础上有很多的提升同时也能较好的解决CVS 系统的⼀些不⾜。
1.4 svn的使⽤⽅法svn是基于客户/服务器模式:
复制-修改-合并⽅案(Subversion默认的模式):在这种模型⾥,每⼀个客户读取项⽬配置库建⽴⼀个私有⼯作副本——版本库中⽂件和⽬录的本地映射。⽤户并⾏⼯作,修改各⾃的⼯作副本,最终,各个私有的复制合并在⼀起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠⼈⼯去确定正误。锁定-修改-解锁⽅案:在这样的模型⾥,在⼀个时间段⾥配置库的⼀个⽂件只允许被⼀个⼈修改。 此模式不适合软件开发这种⼯作。1.5 svn服务器的⼯作⽅式独⽴服务器⽅式: svnserve借助Apache⽅式: mod_dav_svnSVN版本数据存储⽅式BDB (Berkeley DB) 数据库⽅式FSFS ⽂件⽅式 (推荐)2 svn服务端安装配置2.1 两种服务端安装包2.1.1 官⽅安装包官⽅提供的服务端安装包,安装后需要通过命令⾏操作,适⽤于专业配置管理员使⽤。2.1.2 图形化服务端志愿者开发的图形化操作界⾯的svn服务端,它适⽤于普通软件开发⼈员使⽤。
2.2 安装图形化服务端
查看程序菜单:
查看服务,VisualSVN成功启动:
2.3 创建仓库svn服务端创建完成需要创建仓库,仓库中存放要版本控制的⽂件。通过开始菜单进⼊VisualSVN server manager:
选择⽂件存储⽅式:
创建⼀个空的仓库:
设置⽤户访问仓库权限:
仓库创建成功:
2.4 创建⼯程⽬录仓库中存放开发项⽬代码、⽂档等,需要创建⼀个⼯程⽬录。
创建成功:
trunk:项⽬开发代码的主体,是从项⽬开始直到当前都处于活动的状态,从这⾥可以获得项⽬最新的源代码以及⼏乎所有的变更历史信息。branch:从trunk的某个点分离出来的代码拷贝,通常可以在不影响主⼲的前提下在这⾥进⾏重⼤bug的修改,或者做实验性的开发,以及定制功能开发等。如果分⽀达到了预期的⽬的,通常可以被合并(Mgerge)到主⼲中。tag:⽤来表⽰trunk和branch的某个点的状态,以代表项⽬的某个稳定状态,通常为最终发布状态。
⼯程⽬录创建完成,查看它的svn地址:
拷贝svn地址: 3 TortoiseSVN客户端3.1 svn客户端类型svn客户端需要通过⽹络访问svn服务端提交⽂件、查询⽂件等,可通过以下客户端类型访问svn服务端:1、使⽤Subversion提供的客户端命令使⽤⽅式:在命令⾏下输⼊命令操作。2、使⽤Torotise图形化界⾯操作(推荐)3、使⽤Eclipse等开发⼯具插件操作(推荐)
3.2 下载安装 TortoiseSVN是Subversion版本控制系统的⼀个免费开源客户端,不需要为使⽤它⽽付费。 TortoiseSVN是 Subversion 的 Windows 扩展。它使你避免接触 Subversion 枯燥⽽且不⽅便的 Command Line。它完全嵌⼊Windows Explorer,使⽤时只需在正常的窗⼝⾥右键操作就可以了
3.3 浏览仓库使⽤Tortoise浏览svn服务端的仓库的内容:
4 权限管理(了解)4.1 认证授权机制 在企业开发中会为每位程序员、测试⼈员等相关⼈员分配⼀个账号,⽤户通过使⽤svn客户端连接svn服务时需要输⼊账号和密码,svn服务对账号和密码进⾏校验,输⼊正确可以继续访问,当⽤户访问仓库下某个⽬录时,svn服务对⽤户进⾏授权,如果⽤户拥有该⽬录的访问权限⽅可访问。 判断账号和密码输⼊是否正确的过程即认证过程。 判断⽤户是否拥有⽬录的读/写权限时即授权过程。
4.2 创建⽤户
查看已创建的⽤户:
修改⽤户:
4.3 创建组
查看创建的组:修改组:
4.4 分配仅限给仓库下的每个⽬录分配权限对访问进⾏控制。4.4.1 删除默认权限删除系统安装后默认权限:
4.4.2 ⽰例⼀:开发⼈员拥有读写权限进⼊权限分配界⾯:
添加组或⽤户:
分配权限:继承⽗⽬录权限、不可访问、读权限、读/写权限
访问时输⼊账号:
登陆测试是否有读/写权限:
4.4.3 ⽰例⼆:测试⼈员拥有读权限
登陆测试是否有读/写权限:
4.4.4 清除认证缓存有⼏种情况需要清除认证缓存:1、本地使⽤多个账号登陆,每次输⼊的账号和密码都不⼀样2、当账号密码修改后(建议清理)
5 TortoiseSVN⽇常使⽤5.1 浏览仓库Repo-browser : 浏览仓库中资源信息5.2 导⼊导出 Export :导出项⽬ ,和checkout区别 (checkout检出后⽂件,含有.svn隐藏⽂件夹, 会和SVN仓库交互, export导出,没有.svn隐藏⽂件夹)
import 将本地资源导⼊到svn 服务器
5.3 修改提交
5.3.1 Checkout检出项⽬,复制项⽬的副本到本地。在要检出的⽬录中右键:
5.3.2 add在检出的⽬录中添加⽂件:
图标: 这是⼀个新⽂件n Add to ignore list :添加到忽略列表 (标记该⽂件不需要版本控制 )
n Add : 标记这个⽂件添加到服务器
已经标记要添加到版本库5.3.3 Commit当检出⽬录或⼦⽬录中内容有修改,⽬录图标变为:提交Commit 提交本地修改⾄svn服务器:在检出⽬录或要提交修改的⽬录右键:
提交后⽬录中的内容与svn服务同步,⽬录图标变为:5.3.4 update更新仓库的⽂件到本地
在检出⽬录或⼦⽬标或⽂件上右键:
5.3.4.1 更新到最新版本
5.3.4.2 更新到指定版本
5.3.5 DeleteDelete :删除版本库⽂件 标记删除后,本地⽂件删除,标记删除后需要提交。
5.3.6 恢复在检出⽬录或⼦⽬录操作会记录操作⽇志,提交前可以回滚操作。 在要回滚的检出⽬录或⼦⽬录中右键:
5.4 冲突处理两个客户端同时修改同⼀个⽂件, 改动同⼀个位置,发⽣冲突情况 如果当commit 遇到⽂件已经过时,说明另⼀个⼈可能改动过 ----- update
ties 将本地和服务器合并到⼀起的⽂件 (不要直接看) 我本地⾃⼰修改后的⽂件 ties.r16 我修改之前的⽂件 ties.r17 别⼈修改后的⽂件
⼿动Merge 后,需要将编辑后冲突⽂件,标记为已经解决 , 再进⾏commit
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688078220a77022.html
评论列表(0条)