linux服务器 svn的安装与配置

一、概述:

  Subversion(SVN)是一个开源的版本控制系统,也就是说 Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 。

二、一些概念:

  repository(源代码库):源代码统一存放的地方

  Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份

  Commit(提交):当你已经修改了代码,你就需要Commit到repository

  Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository 上的源代码同步,你手上的代码就会有最新的变更

三、安装

1. 环境

  centos7

2. 安装

> yum install subversion  (有些代码加了 -y 的参数,它的意思表示:对所有的提问都回答"yes")

3. 查看版本 

> svnserve --version

4. 创建版本库

先建目录

> mkdir /var/svn

创建版本库

> cd /var/svn
> svnadmin create /var/svn/svnrepos
> cd svnrepos 会看到自动生成的版本库文件
conf db format hooks locks README.txt

版本库文件说明

db目录:就是所有版本控制的数据存放文件
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion锁定数据的目录,用来追踪存取文件库的客户端
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)

进入conf文件夹会看到三个配置文件

vim passwd
  设置账号密码 在[users]块中添加用户和密码,格式:账号=密码,如 test=123456

vim authz
  设置权限 在尾部添加 [/] test=rw (r:读 w:写)
vim svnserve.conf
  按i进入编辑模式
  打开下面的几个注释:
  anon-access = read #匿名用户可读
  auth-access = write #授权用户可写
  password-db = passwd #使用哪个文件作为账号文件
  authz-db = authz #使用哪个文件作为权限文件
  realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
  按esc退出编辑模式 输入:wq保存退出

5. 启动/停止版本库

svnserve -d -r /var/svn/

用ps查看启动状态

ps -ef | grep svn

停止版本库

killall svnserve

6. 实现svn与web同步

1)设置web服务器根目录/home/www

2)checkout一份到web服务器根目录

svn co svn://localhost/svnrepos /home/www
修改web用户权限
chown -R root:root /home/www

3)建立同步脚本

cd /var/svn/svnrepos/hooks/
cp post-commit.tmpl post-commit
编辑post-commit,在文件末尾加上以下内容
export LANG=zh_US.UTF-8 svn update /home/www –username test –password 123456 --no-auth-cache chown -R root:root /home/www
增加脚本执行权限
chmod +x post-commit

四、安装好之后进行测试

启动SVN客户端

输入svn://公网IP/svnrepos checkout你可能会发现连接失败

如果是使用阿里云的服务器,需要在安全组设置添加3690的端口

原文地址:https://www.cnblogs.com/caichunbao/p/7592190.html