首先需要安装svn
apt-get install subversion
然后在 /var 目录下新建一个svn文件夹,存放svn的仓库
cd /var
mkdir svn
创建svn数据仓库,一个项目对应一个仓库
svnadmin create projectName
启动svn服务
其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址。
/home/svn指定svn数据仓库存放的目录位置
svnserve -d -r /var/svn
设置svn: 方式的访问权限
在每个数据仓库目录下都有一堆目录,进入 conf 并打开 svnserve.conf 这个文件,找到以下几行,
并把前面的注解符号 ‘#’ 去掉,注意千万在每行的前面别留任何空格。
其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。
但如果想拒绝匿名用户的访问,只需把 anon-access的read 改成 none 就能达到目的。
password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf 在
同一个目录
anon-access = read
auth-access = write
password-db = passwd
配置 passwd文件中的内容。username 位置对应你的账号,password对应你的密码。
[users]
# harry = harryssecret
# sally = sallyssecret
username = password
配置authz中的内容,这个是权限配置。groups代表用户组,格式是用户组 = 用户名
下面的 projectName 等于你的项目名称,也就是数据仓库文件夹名称,/ 代表仓库的根目录
rw代表读写权限
[groups]
admin = username
[projectName:/]
@admin = rw
存盘退出后,svn 服务器就算正式可以运行了!
把所有需要管理的项目都放在 /var/svn这个目录下,像正常那样用 svnadmin create 命令建立数据仓库。
这样就可以使用svn客户端通过 “svn://IP地址/数据仓库目录” 的方式把服务器上的数据仓库拉到本地了。
设置svn同步更新web目录
假设我这里的web目录地址为 /var/www
我们要先checkout一份到本地,在www目录下输入命令
svn checkout svn://you host/projectName
这个时候我们的/var/www目录下就会出来一个projectName的文件夹,这个就是我们的网站目录。
我们再打开/var/svn/projectName/hooks目录
cp post-commit-tmpl post-commit
vim post-commit
使用上面的命令将post-commit.tmpl复制一份并重命名为post-commit
然后使用vim编辑,将最下面的内容修改为如下
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
svn update /var/www/projectName --username username --password password
编辑完成后保存,我们关闭一下svn服务再重新打开,配置就完成了。
killall svnserve
svnserve -d -r /var/svn/