1.安装svn服务器端软件

从镜像服务器或者YUM源下载安装SVN服务器软件:

yum install subversion
mkdir /usr/local/svn     //创建SVN安装目录
chmod -R 777 svn      //修改目录权限为777
svnadmin create /usr/local/svn/sunny  //创建一个SVN版本仓库sunny(sunny可以自定义)
cd  /usr/local/svn/sunny/conf    //进入sunny版本仓库下的配置文件目录

 

下面要修改这个目录下的三个配置文件

(1)vi svnserve.conf    //配置版本库信息和用户文件和用户密码文件的路径、版本库路径,

//这四行,前面的#号和空格去掉(注意去掉#要顶格写,不要留有多余空格),变成

anon-access = none      //匿名访问,改成none
auth-access = write
password-db = passwd
realm = sunny           //改成自己的版本库名称

保存退出

(2)vi authz     //文件,创建SVN组和组用户的权限

[group]
sunny = gep,wce //创建一个sunny的组,并指定两个用户gep和wce
 
[/]             //制定根目录下的权限
@sunny = rw     //sunny组用户权限为读写
* = r           //其他用户只有读权限

保存退出

(3) vi passwd   //创建或修改用户密码

[users]
gep = 123456    //用户名为gep的用户的密码为123456
wce = 123456    //。。。

保存退出

 

启动SVN服务器:

//这里采用多版本库的方式启动 

svnserve -d -r /usr/local/svn/

如果是单版本库可以添加一行

svnserve -d -r /usr/local/svn/sunny

然后要设置自启动(开机启动)

vi /etc/rc.local  打开自启动文件添加

/usr/bin/svnserve -d -r /usr/local/svn/

到此为止可以从服务端检出文件了.

 

svn命令: 查看svn是否启动

netstat -tnl |grep :3690

安装成功!

svn checkout svn://192.168.1.51/sunny /usr/local/apache2/htdocs/blog

检出一份版本库文件到指定目录

svn up                //更新文件

自动更新

vi /usr/local/svn/sunny/hooks/post-commit中加入

#!/bin/sh
#设置一些变量
SVN=/usr/bin/svn
WEB=/usr/local/apache2/htdocs/blog #要更新的目录
export LANG=en_US.UTF-8
$SVN update $WEB --username wgl --password 123456

 其中SVN=右边改成 svn 命令位置 一般默认为/usr/bin/svn

    WEB=右边改成你实际的web目录

赋予可执行权限

chmod 777 /usr/local/svn/sunny/hooks/post-commit

自动更新安装完毕

=========================================================================

其他操作

  

 提交文件

svn commit -m

 提交文件

svn ci -m'aaa' test.php

 新建文件并添加到svn

svn add file

添加当前目录下所有的php文件

svn add *.php

删除test.php

svn delete test.php

  查看test文件的log信息

svn log test.php

 清理当前目录

svn cleanup

 重新定位SVN版本库地址

svn switch --relocate svn://192.168.1.253  svn://172.19.10.250

 

// SVN版本库起动方式,现在SVN下面有 sunnytest 两个版本库

1:单版本库起动    

svnserve -d -r /usr/local/svn/sunny

2:多版本库起动 

 svnserve -d -r /usr/local/svn

区别在于起动svn时候的命令中的启动参数-r指定的目录。 


限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件

以配置 sunny 版本库为例

vi authz
[groups]
teacher = sunny,sunny1
[sunny:/]             //指定版本库跟目录下的权限
@teacher = rw     //teacher组用户权限为读写
* = r           //其他用户只有读权限

 保存退出

vi passwd 设置组中用户的账号和密码

[users]
sunny  = 123456
sunny1 = 123456