版本控制软件SVN
- svn是版本控制软件(CMS)
SVN简介
- 在实际的项目开发中,一定不可能只有一个人完成项目开发,既然不是一个人完成项目开发,就可能造成项目代码修改的冲突。最初的版本控制工具CVS。这些工具都是在linux下发展起来的。但是慢慢的发现在CVS管理的过程中会产生大量的历史无用文件,所以现在开发在CVS之后都开始使用SVN了。使用版本控制工具可以有效的针对项目中的代码进行管理,以及冲突的解决。
- 但是不得不说,SVN是有自己的局限性的,在一个项目团队之中开发,在SVN里面所保存的项目代码,只能被本地所管理。而且SVN使用了客户端服务器模式,也就是说如果需要使用SVN需要搭建服务器,然后单独配置客户端。
- 也就是说CVS、SVN脱离了网络就无法进行版本控制。现在最好用的是GIT。
搭建SVN服务器端
-
如果想搭建SVN服务器端,必须要有单独服务器端的安装软件。如果要安装,在windows只需要直接点开安装即可。
-
此时SVN服务器软件已经安装完成,但是还需要对其进行配置才可以使用。
-
现在需要准备一个工作目录。例如:
e:mkdir mysvnpro
-
此时
E:\mysvnpro
只是一个单独的空目录并不是svn认可的目录,所以需要初始化此目录。svnadmin create e:\mysvnpro
初始化完成之后,会自动再次目录中生成一些配置文件。
-
修改“e:\mysvnpro\conf”目录中的内容,所有相关配置都在此目录里面。
-
再此目录中一共有三个文件:svnserve.conf(服务器整体配置文件)、authz(授权、认证)、passwd(用户名密码)。
-
编辑“svnserve.conf”文件
### 多重注解是真正的注解 # 单个的注解是可选的注解,将可选的注解取消 anon-access = read auth-access = write passwd-db = passwd authz-db = authz # realm = My First Respository(可取消可不取消)
-
编辑“passwd”文件设置我们可以使用的用户信息。
### 添加用户信息,设置用户kid,密码设置为hello kid = hello
-
编辑“authz”文件设置权限。
[groups] # harry_and_sally = harry,sally ### 新增代码,为用户kid设置读写权限 [/] kid = rw # [/foo/bar] # harry = rw # *= ### 新增代码 kid = rw * = #[repository:/baz/fuz] #@harry_and_sally = rw ### 取消下一行的注解 * = r
-
-
启动svn服务:
svnserve -d -r e:\mysvnpro
,启动之后不要关闭命令行窗口。
-
配置SVN客户端
-
在Eclipse中实现客户端的配置处理操作。要想在Eclipse中实现版本控制工具,就必须有相应的插件(site)帮助完成。
-
从标准的安装方式,应该选择软件更新模式。
-
【Help】→ 【Install New Software】
-
选择【Add】点击【Archive…】找到本地"svn的客户端包",Name任意起。点击【Add】
-
一直往下,直到完成,重启eclipse。
-
如果此时在Eclipse的Import中可以找到SVN就表示配置成功。
-
-
如果此方法失败,可以将site压缩包下的内容直接全部复制到eclipse的安装目录下。如果两个方法都失败,自求多福吧。
-
发布者:项目发布和开发者:项目检出
- SVN服务器和客户端都配置完成,下面就需要进行项目的发布处理,在SVN项目中的必须有一个项目发布者,有了项目的发布者之后才存在有项目的开发者。
- 要保证创建一个你需要发布的项目
- 在项目中选择鼠标右键,选择【Team】→【Share Project】,随后选择共享的服务器类型SVN。
- 要求数据SVN服务器的路径:
- 需要服务器ip地址支持(ipconfig)
- svn的连接地址:svn://
服务区ip地址
- 一直往下操作,随后输入SVN的用户名密码。
- 项目发布完成,并不意味代码已经提交给服务器了,此时代码提示黑底白星样式。所以还需要提交。
- 右键所要提交的代码,选择【Team】→【submit】,提交完成之后,提示符号变为黄色的存储样式。
- 如果要是有其他开发者,则需要通过服务器端取得这个项目代码。
- 打开一个新的Eclipse的工作区。
- 选择【File】→【Import】→【SVN】
- 输入SVN的连接地址:svn://
服务区ip地址
- 往下操作,知道完成。
- 开发者如果要修改代码,应该先“更新”代码,在“提交”代码。
冲突解决
-
既然是多人开发,那么就有可能两个人修改了一个文件,如果都提交,就会产生冲突。
-
如果在修改某些代码之前,最好做一次更新处理。
-
如果真的多人修改一个文件,并且同时提交,那么一定会出现错误。
-
如果第二个开发者,更新内容,并提交。
-
第一个开发者,执行更新,那么一定会有冲突产生,并且标记冲突位置。
-
此时需要最后一个开发者手动修改冲突文件,但是修改完成之后还是文件,此时需要做一个“冲突解决”的标记(右键点击文件 —> Team —> 标记为解决)。
-
-
-
总结:这些工具就是一个配置问题,而且必须会配置。