博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos7 搭建 SVN 服务器
阅读量:5966 次
发布时间:2019-06-19

本文共 1977 字,大约阅读时间需要 6 分钟。

hot3.png

安装步骤如下

1.安装

sudo yum install subversion
  •  

查看安装位置

sudo rpm -ql subversion
  •  

2.创建版本库

sudo mkdir -p /var/svnsudo svnadmin create /var/svn/qqtest
  •  

3.配置

进入conf目录(该svn版本库配置文件)

  • authz文件是权限控制文件
  • passwd是帐号密码文件
  • svnserve.conf SVN服务配置文件

cd 到项目目录中 查看是否有如下文件夹 ll

14174451_zscz.png

  1. 服务svnserve.conf,进入 conf 目录
  2. vi svnserve.conf 打开下图 红色标记区注释就行了 不需要过多修改 网上其他的教程有很多修改了其中的东西 我也试过几次 会有意想不到的错误 默认的就是最好的

anon-access = read #匿名用户可读

auth-access = write #授权用户可写

password-db = passwd #使用哪个文件作为账号文件

authz-db = authz #使用哪个文件作为权限文件

realm = /var/svn/qqtest # 认证空间名,版本库所在目录,和之前的一样

14174451_qDFf.png

  1. 用户密码 passwd 配置,新增用户的用户名和密码

格式用户名 = 密码

qq = qqtest

qq2 = qqtest2

173446_jKni_2544569.png

  1. 权限控制 authz 配置,设置[/]代表根目录下所有的资源
  2. rw 表示有读写的权利
    admin = qq,qq2[/]@admin = rw

     

173540_t80W_2544569.png

  1. 启动 svn 服务器

    sudo svnserve -d -r /var/svn

     

    如果报:svnserve: Can't bind server socket: Address already in use

    解决办法:

    使用  “ ps -e|grep svnserve ” 找到服务对应进程编号 ,使用kill 命令,之后再使用启动命令 ,

  2. 查看是否成功启动

    ps -ef | grep vvnserve

    停止 svn

  3. killall svnserve # 停止进程

  4. 设置svn 服务自启动

    1. 第一步 新建一个 .sh 文件 vi /root/svn_qqtest_auto_start.sh
    #!/bin/bash/usr/bin/svn -d -r /var/svn/qqtest

    这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。

    ​ which svnserve

    1. 修改该脚本的执行权限

    chmod ug+x svn_qqtest_auto_start.sh

    最后:加入自动运行

    vi /etc/rc.d/rc.local

    按i进入编辑模式,在末尾添加脚本的路径,如:
    14174451_TxAu.png

再按esc,再按两次大写Z,保存退出。好了 完美成功了 现在可以在你的本地链接远程 SVN 了

 

配置 post-commit

利用SVN的POST-COMMIT钩子自动部署代码 我们在开发的过程将代码提交到SVN后使用SVN的hook,通过post-commit脚本,在目 标文件夹根下执行svn update操作,将更新内容同步到测试环境,这样开发调试非常方便。

  1. 当我们安装建立好远端仓库后目录结构如下

14174451_zscz.png

进入 hooks 目录cd hooks

hook 目录结构

我们可以看到有个 post-commit.tmpl 的文件。 这是官方提供的一个 template 。我们直接 copy 这个文件

cp -f post-commit.tmpl post-commit

注意: copy 后的文件没有后缀名称

  1. 编辑 post-commit 文件

shell vi post-commit

删掉除了第一行 #!/bin/sh 之后的所有文件 然后输入

#!/bin/sh

/usr/bin/svn update --username wenpeng --password wp113000 /data/qqtest

# svn 命令路径 + update --username 您的用户名(svn设置的用户名) --password 您的密码(svn设置的密码) 您的服务器代码项目目录

  1. 即将完成 --- 最后一步 -- 修改权限

chmod +x post-commit

  1. Checkout一份代码到您的服务器代码项目目录

svn checkout svn://127.0.0.1/qqtest   /data/qqtest

好了 已经完成了,这样,每次你提交代码的时候,都会执行您自己新建的 post-commit 文件, 自动 up 您的服务器项目代码

转载于:https://my.oschina.net/u/2544569/blog/1510009

你可能感兴趣的文章
CocoaPods的使用
查看>>
C++ 构造函数与析构函数
查看>>
轻量级java web实践-6(框架源码-4)
查看>>
加一度分享5大竞价经验,让流量更大更精准
查看>>
linux上如何查看具体的命令属于哪个安装包
查看>>
各种协议在RFC中的编号
查看>>
Linux常用命令大全(归类)
查看>>
如何利用nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查
查看>>
8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向
查看>>
mysql中IFNULL,IF,CASE的区别
查看>>
linux系统mount命令挂载windows系统共享文件夹
查看>>
网易云音乐ubuntu 18.04下无法打开的解决办法
查看>>
解决Mysql ERROR 1045 (28000)“Access denied for user 'root'@'localhost'”
查看>>
DNS 解析过程详解
查看>>
NodeSchool: JavaScript函数式编程
查看>>
intellij idea常用设置
查看>>
多线程
查看>>
4月第三周国内域名解析商Top10:万网升至20.32%
查看>>
五,通道之间的数据传输
查看>>
[Troubleshooting]-Outlook预定Lync预定会议显示乱码与残留号码
查看>>