admin 发表于 2021-11-29 10:59:11

centos7 安装svn

一丶 SVN简介
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
1.准备工作
一台centos7 服务器 一台 客户端
————————————————
1、验证是否安装了SVN

命令: # rpm -qa subversion

如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64

否则,空白

2、安装SVN的命令

# yum -y install subversion

接下来使用# svnadmin create /home/svn/blog//其中blog为你的站点目录/home/svn/为目录
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了

然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置

svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)


首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格

# password-db = passwd

# authz-db = authz


然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效

登录名=密码

user=123456


最后编辑authz文件给让配置的账号设置权限(其中 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)

# * = r

[/]

root=rw

这是用户的配置就完成了

接下来我们就需要开启svn svnserve -d -r /home/svn/blog
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo

使用此命令开启svn 根据自己设置的目录自行更改

使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了


win下载svn工具

接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了


重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
输入你的svn地址 地址请根据自己的设置自行更改


然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了


(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)



可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存

这时我们保存在版本库的代码就会被同步到网站根目录





admin 发表于 2021-12-2 19:04:14

配置同步web目录
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit

REPOS="$1"
REV="$2"
TXN_NAME="$3"
AUTHOR="$(svnlook author -r $REV $REPOS)"
MESSAGE="$(svnlook log $REPOS)"
SVN_PATH=/usr/bin/svn
WEB_PATH=/usr/share/nginx/html/ssyleo
mkdir -p /var/log/svnlog
touch /var/log/svnlog/ssyleo_update.log
LOG_PATH=/var/log/svnlog/ssyleo_update.log
echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
echo $AUTHOR,$MESSAGE >> $LOG_PATH
echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
$SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH

#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2"
SVN_PATH=/usr/bin/svn
WEB_PATH=/web/project
LOG_PATH=/tmp/svn_update.log
#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
chown -R www:www $WEB_PATH

admin 发表于 2021-12-2 21:57:31

#!/bin/sh
export LAND="zh_CN.UTF-8"
REPOS="$1"
REV="$2"
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache

#!/bin/sh
export LAND="zh_CN.UTF-8"
REPOS="$1"
REV="$2"
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache

页: [1]
查看完整版本: centos7 安装svn