腾讯云搭svn服务器,腾讯云使用笔记二: 安装svn服务器及web同步

A01:安装subversion

sudo apt-get install subversion

A02:创建仓库

很多目录可以放subversion文件仓库,最常见的是/usr/local/svn和/home/svn

sudo mkdir -p /home/svn/youshengyouse

sudo svnadmin create /home/svn/youshengyouse

//说明:先创建目录(-p多级创建),再在该目录下新建版本库

A03:启动svn网络服务

svnserve -d -r /home/svn

// svnserve不要写成svnserver

// -d表示以守护方式启动

// -r表示仓库的根目录,这样svn://ip地址/youshengyouse/就表示对应的仓库路径为/home/svn/youshengyouse

A04:配置仓库

先备份配置文件

ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp svnserve.conf svnserve.conf.bak20180907

/home/svn/youshengyouse/conf/svnserve.conf文件的内容如下

anon-access = read

auth-access = write

password-db = passwd

authz-db = authz

/home/svn/youshengyouse/conf/passwd文件的内容如下

先备份buntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp passwd passwd.bak20180907

[users]

aaaa=aaaamima

bbbb=bbbbmima

/home/svn/youshengyouse/conf/authz(先备份)

[groups]

develop = aaaa,bbbb

manger = aaaa

[/]

@develop=rw

*=r

修改后要重启

svnserve -d -r /home/svn

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

查下svn当前占的端口

root@VM-0-14-ubuntu:~# ps -aux | grep svn

root 16960 0.0 0.1 72492 940 ? Ss 14:29 0:00 svnserve -d -r /home/svn

root 19765 0.0 0.0 13232 880 pts/5 S+ 15:20 0:00 grep --color=auto svn

//kill进程

kill -9 16960

//再启动

svnserve -d -r /home/svn

A05:编辑腾讯云安全组

添加规则

0.0.0.0/0 TCP:3690 允许 -

否则会拒绝svn访问

A06:安装客户端

A07:测试

仓库路径为 svn://ip地址/youshengyouse/

检出(checkout)成功,新建一文件上传,也成功,ok,万里长征,完成60%

常见问题

提交如果报错

Can't connect to host '134.175.42.125': 由于目标计算机积极拒绝,无法连接。

原因1:svn服务未启动

line 1: Section header expected

原因:一般是本个配置文件格工或哪里多了空格之类的

can't open file db/txn-current-lock:permission denied

原因:权限不够

$ sudo chmod -R 777 /home/svn/youshengyouse

post-commit hook failed (exit code 255) with no output.

原因: post-commit 脚本文件的权限不对,post-commit 脚本必须有 +x 权限。

sudo chmod 777 /home/svn/youshengyouse/hooks/post-commit

============如何让svn代码与web网站同步=========

只在svn提交就可以,不要再向网站提交代码

B01:新建钩子文件 post-commit

#!/bin/bash

# 基本变量

export LANG=en_US.UTF-8

dateTime=`date +%F`

dateTimeMinute=`date +%H%M%S`

binSvn=/usr/bin/svn # 你svn命令的绝对路径,如果不知道,请用find / -name svn查找

dirHtmlApp=/var/www/youshengyouse/ # 检出的web站点根目录

logFileName=/tmp/youshengyouse_svnhooks_${dateTime}.log

# svn配置

# [1] REPOS-PATH 仓库路径

# [2] REV 刚执行修订版本号

# [3] TXN-NAME (the name of the transaction that has become REV)

REPOS="$1"

REV="$2"

# 检出或者更新subversion,钩子的核心功能

echo "-- $dateTimeMinute" >> $logFileName

# 先要将svn仓库中的内容检出到网站对应的目录中,如何判断有没有检出过呢,就是看是否有文件夹.svn

# 如是检出过,就直接更新就行

if [ ! -d $dirHtmlApp/.svn ]; then

# 检出SVN

echo "$binSvn co file://$REPOS/ $dirHtmlApp" >> $logFileName

# 使用命令co检出

$binSvn co file://$REPOS/ $dirHtmlApp

if [ $? -eq 0 ]; then

echo "checkout ok" >> $logFileName

else

echo "checkout error" >> $logFileName

fi

else

# 更新svn

echo " $binSvn up $REV $dirHtmlApp " >> $logFileName

# 使用up命令更新

$binSvn up $REV $dirHtmlApp >> $logFileName

if [ $? -eq 0 ]; then

echo " update sucess " >> $logFileName

else

echo " update fial " >> $logFileName

fi

fi

echo "--" >> $logFileName

B02:上传

建议先用测试下,检出,上传,删除后,确认无误后再进行批量操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值