Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。
SVN相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。
下面我们开始部署SVN
一、安装
访问: http://subversion.apache.org/
Linux执行命令: yum install -y subversion
查看是否安装成功: svn --version
至此SVN我们就部署完成了
二、创建版本库
创建版本库目录
mkdir -p /var/svn/repository
在版本库目录/var/svn/repository下创建具体项目目录
mkdir pro_oa
创建 SVN 版本库
Linux执行 -> svnadmin create /var/svn/repository/pro_oa
三、配置SVN
我们可以看到SVN服务名称为svnserve,我们将它设置开机自起
chkconfig --level 35 svnserve on
修改配置文件
#配置文件路径 /etc/rc.d/init.d/svnserve
1> 进入目录
cd /etc/rc.d/init.d/
2> 备份文件
cp svnserve svnserve.bak
3> 查询端口是否被占用
netstat -anp | grep 2255
4> vim svnserve
原版
args="--daemon --pid-file=${pidfile} $OPTIONS"
修改版
args="--daemon --root 版本库根目录 --listen-port指定端口号 --pid-file=${pidfile} $OPTIONS"
例如:
#使用/var/svn/repository作为版本库,SVN服务端口为2255
args="--daemon --root /var/svn/repository --listen-port 2255 --pid-file=${pidfile} $OPTIONS"
#使用/var/svn/repository作为版本库,默认使用3690端口
args="--daemon --root /var/svn/repository --pid-file=${pidfile} $OPTIONS"
启动SVN
service svnserve start
四、创建两个工作目录模拟SVN版本控制
①检出
mkdir -p /root/workspace/harry
mkdir -p /root/workspace/sally
cd /root/workspace/harry
svn checkout svn://192.168.211.128/pro_oa ./
注:检出项目时可以不加 ./ 检出的是整个项目(包含项目文件夹),加上./检出的是项目里的所有文件(不包含项目文件夹)
②将某个文件纳入SVN版本控制
svn add xxx.txt
注: 在commit之前,一定要先执行一次add(一个新文件执行一次即可),否则commit失败
③提交
svn commit -m “日志信息” xxx.txt
注: 必须加上-m 信息,否则提交报错,若不加文件名代表提交当前目录所有文件
④修改权限(我们通过上面的提交命令,发现我们现在并不能提交文件,此时我们需要修改一下匿名访问权限)
#进入SVN版本库目录,修改conf下的svnserve.conf
1> cd /var/svn/repository/pro_oa/conf/
2> cp svnserve.conf svnserve.conf.bak
3> vim svnserve.conf
#修改匿名访问权限
anon-access = write (如下图)
⑤查看服务器端文件内容
svn list svn://192.168.211.128/pro_oa
⑥更新
svn update xxx.txt
注:可以带文件名xxx.txt 也可以不带,不带更新整个项目
⑦冲突(在更新过程中可能会发生冲突)
这里我们输入p选项,然后发现出现了以下文件
解决方案
1> 手动解决 (这里我们采用这种方式解决)
2> 半自动配置
⑧手动解决SVN冲突
1> 手动删除产生的三个文件
2> 修改test.txt冲突的内容
至此SVN服务器就介绍完成了,下面我将会介绍SVN与MyEclipse的集成