SVN简介
在实际的项目开发环节过程之中,一定不可能是由单人负责完成的,这样就需要多人团队合作开发,但是如果要是进行多人开发,那么就需要考虑同时更新的问题.
加入过现在a用户修改了摸一个Hello.java文件,并且b用户也修改了Hello.java文件,如果同时进行保存,那么就有可能出现问价内容丢失的情况.
最早的时候使用了CVS的版本控制工具,但是这个工具的设计并不完善,除了需要保持真是的数据之外,还需要处理许多的数据文件(这些文件可能对我们没有用处),在CVS基础之上退出了更为完善的SVN
这些版本控制工具本质上都是在Linux下发展出来的.
但是需要有一个小小的说明,CVS和SVN都有一个共同的特点,它采用的C/S的程序结构完成的,指的是客户端,到服务器端开发, 也就是说如果要使用他,必须有网络,而且要单独配置客户端与服务器端.
配置SVN服务器
搜先在Windows中有相应的SVN对应版本,所以直接下载安装即可
如果要搭建SVN服务器,那么必须有一个统一的管理目录,现在假设这个目录在e:\mysvnpro
- 在Epan上建立一个mysvnpro目录
e:
mkdir mysvnpro
- 这个时候只是表示这是一个系统文件夹,但是并没有所谓的SVN配置
- 随后要初始化此目录,将其变为可以被svn管理的目录
svnadmin create e:\mysvnpro
这个时候会在目录里会增加一些里的配置操作,随后就需要对这面的文件进行配置.
3. 在e:\mysvnpro目录下有一个conf的目录,这个目录表示svn的综合配置
在conf下有三个文件:authz(授权),passwd(用户管理),svnserver.conf(核心配置文件)
- 修改svnserve.conf文件,这个文件的目的主要是与其他两个文件关联在一起
- anon-access = none 表示匿名用户的访问权限为无
- auth-access = write 表示用户的访问权限为修改文件(包含读取文件)
- password-db = passwd 使用passwd文件管理用户的密码
- realm = My First Repository
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
修改passwd文件,建立一个自己的用户
maoshu = helloworld
- 配置authz文件,这个文件配置的时候需要考虑到里面的配置顺序
- [/] 表示所有文件目录
- maoshu = rw 表示maoshu这个用户拥有读取文件和修改文件的权利
- "*="表示其他的用户没有任何权限
[/]
maoshu = rw
# [/foo/bar]
# harry = rw
# &joe = r
# * =
maoshu = rw
*=
# [repository:/baz/fuz]
# @harry_and_sally = rw
*= r
- 配置文件准备完毕之后,需要启动svn服务
svnserve -d -r e:\mysvnpro
- 此时不要关闭cmd
配置Eclipse客户端
严格来讲任何的版本控制工具的客户端都可以分为两类:
- 直接用户操作的客户端,相当于给了一个文件的上传工具的意思
- 利用Eclipse,IDEA作为客户端
但是如果要在Eclise之中使用svn那么就必须单独配置客户端的操作组件,也就是说要配置Eclipse的插件
- 打开[Help]—>选择Eclipse Makketplace 使用Eclipse插件市场安装
- 搜索Subversion,选择红色框中的install安装
3. 当组件安装完成之后告诉用户需要重启之后才可以使用
4. 如果此时点击windows–>preferences 搜索svn,有以下内容,表示安装成功
在SVN服务器中发布项目
- 现在已经配置好了SVN服务器,并且已经启动了SVN服务器,需要有发布者发布项目
- 在Eclipse里面项目右键–>[Team]—>share project
- 这个时候需要输入svn的路径
- 此时项目中会出现"*"号表示该项目下还有为上传的内容
- 在项目上右键点击选择[tram]—>[提交]
- 此时svn中就会有项目的目录结构了
- 新建一个类
- 该类中出现 "?"号,如果需要将该类也添加到版本控制,则可以使用鼠标选中该类然后,右键[tram]–>[添加到版本控制]
- 随后在提交该文件,最好不要直接提交整个项目
使用SVN开发项目
- 只要牵扯到多人开发就会由代码的更新冲突问题,所以下面模拟一个冲突处理操作,打开一个新的Eclipse,对项目进行检出
- [file]->[import]
- 随后输入svn位置
- 选择要导入的项目
- 当项目检出之后,有可能出现两个开发者修改同一个文件的情况,就会出现版本冲突问题
- 要将发生冲突的文件修改好之后,将其标记为"已解决"
- 然后在进行提交即可
- 如果多人开发的时候要想进行项目的提交必须按照如下的流程:[Update]–[commit]
- 这样可以避免发生冲突