linux安装服务器SVN (转)

转载地址:http://www.fancyecommerce.com/2016/05/03/yii2-mongodb%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE-mongo/

这个作者写的安装教程挺不错的,推荐下。

在开发的过程中,我们需要使用 svn进行版本控制。

1.

  1. yum install subversion

 

  1. svnserve --version

查看具体的版本信息,如果有结果,则代表SVN安装成功。

2. 创建路径:

  1. /home/svn/repo
  2. #创建仓库
  3. svnadmin create /home/svn/repo

3.进行配置:

  1. vim /home/svn/repo/conf/svnserve.conf

 

  1. [general]
  2. anon-access = none //匿名访问的权限,设置为none表示为不允许,默认是read
  3. auth-access = write //可以是read,write,none,默认是write
  4. password-db = passwd //密码数据库的路径,去掉前面的#
  5. authz-db = authz

4.配置svn的密码文件:

  1. vim /home/svn/repo/conf/passwd
  2. [user]
  3. username = passwd

上面的例子为填写用户名和密码,如果是water 密码为888888

  1. [user]
  2. water = 888888

配置文件 /home/svn/repo/conf/authz

  1. [groups]
  2. [/]
  3. terry = rw
  4. #代表terry 这个账户对应的路径为根目录,对根目录下的所有文件和文件夹有读写的权限
  5. [/magento]
  6. terry = r
  7. #代表terry这个账户对应的路径是magento文件夹,在这个目录下的文件只有读的权限
  8. [/magento/app/etc/local.xml]
  9. terry =
  10. #代表terry对上面这个文件不可见。即:不可读,不可写

设置可读

  1. vim /home/svn/repo/conf/svnserve.conf
  2. anon-access = none

设置完成后,关闭svn,重启

  1. 首先关闭iptables
  2. service iptables stop
  3. 关闭svn: killall svnserve
  4. 启动svn: svnserve -d -r /home/svn/repo --listen-host ip地址

 

经过了4步骤,我们创建了账户,设置了账户的权限,当我们用svn工具访问svn://ip地址,就可以访问了。

在本地可以通过上传文件到svn服务器

我们想要的是svn中提交的文件,复制到服务器的web路径中,所以我们需要把svn中的数据提交到web路径

这里我们使用的命令式svn up,强制提交:svn up –force

首先我们需要先设置,把svn中的路径,对应的web目录

譬如:svn://192.168.1.12/magento 对应到/www/web/come/public_html,我们的配置为

  1. svn co svn://192.168.1.12/magento /www/web/come/public_html

 

  1. 然后需要输入root密码,
  2. 然后需要输入提交账户,这个账户就是svn的在上面配置文件中添加的账户,
  3. 更改svn up 账户命令:svn co --username xxx svn://192.168.1.12/magento

 tip:

先用sudo把源码co到服务器,然后chmod给项目目录权限。

6

如果svn up 报错:

Skipped ‘.’

需要到输出的路径下,譬如到/www/web/come/public_html下面svn up 就可以了

7

开机启动svn

  1. vi /etc/rc.local
  2. 在最后一行加入:
  3. svnserve -d -r /home/svn/repo

 

8

自动更新,不需要svn up

svn co svn://115.29.18.29/erp  /www/web/

在SVN 项目版本库的存储目录下的hooks 目录,新建立一个post-commit文件:

 

  1. vi /home/svn/repo/hooks/post-commit

 

  1. touch /home/svn/repo/hooks/svn_hook.log
  2. chmod 777 -R /home/svn/repo/hooks/svn_hook.log
  3. #!/bin/sh
  4. REPOS="$1"
  5. REV="$2"
  6. WEB=/www/web
  7. export LANG=en_US.UTF-8
  8. echo `whoami`,$REPOS,$REV >> /home/svn/repo/hooks/svn_hook.log
  9. svn update $WEB

保存,退出。
权限:chmod 777 post-commit

测试,看脚本是否有权限问题:

复制代码 代码示例:

./post-commit

以后每次客户端提交操作,就会自动运行该脚本。

 

原文地址:https://www.cnblogs.com/jiangxiaochang/p/6518385.html