本文实例为大家分享了CentOS6.9快速安装配置svn的具体代码,供大家参考,具体内容如下
环境介绍:
操作系统:CentOS release 6.9 (Final)
192.168.65.130 (svn服务器)
192.168.65.129 (svn客户端)
一、svn安装检查(在两台上都执行)
1
2
3
4
5
|
if [ ! -f /usr/bin/svn ]; then
yum -y install subversion > /dev/null
echo "svn has been installed." > /dev/null
/usr/bin/svn --version| head -1| awk -F " " '{print $3}'
fi
|
二、创建版本库文件夹(仅在130上操作)
1
2
3
4
|
mkdir -p /data/svn/sinsvn
#创建版本库
svnadmin create /data/svn/sinsvn
mkdir -p /data/www/sinsvn
|
三、主要操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#导入所需管理的项目到版本库repository中
svn import /data/www/sinsvn/ file : ///data/svn/sinsvn -m "svn first test"
#检查是否导入成功
svn list --verbose file : ///data/svn/sinsvn
#修改版本库的配置文件
# vim /data/svn/sinsvn/conf/svnserve.conf
cat > /data/svn/sinsvn/conf/svnserve .conf << "EOF"
[general]
anon-access = none
auth-access = write
password-db = /data/svn/passwd
authz-db = /data/svn/authz
realm =sinsvn
EOF
cp /data/svn/sinsvn/conf/passwd /data/svn
cp /data/svn/sinsvn/conf/authz /data/svn
#修改允许访问版本库的用户文件
# vim /data/svn/passwd
cat > /data/svn/passwd << "EOF"
[ users ]
harry = harry
sin = sin
EOF
# vim /data/svn/authz
cat > /data/svn/authz << "EOF"
[ groups ]
myteam = harry,sin
[/]
harry = rw
[sinsvn:/]
@myteam = rw
[secsvn: /www ]
@myteam =r
sin= rw
[sincms:/]
sin= rw
harry=
EOF
# 启动 svn 服务
svnserve -d -r /data/svn/
# 查看
ps -ef| grep svnserve| grep - v 'grep'
netstat -anltp| grep 3690
|
四、测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# 测试,在另外一台机器上操作(129),目的是效果更为明显些
# 1、mkdir -p /data/www
mkdir -p /data/www
cd /data/www/
# 2、svn co 代码
svn co svn: //192 .168.65.130 /sinsvn --username=harry --password=harry
# 3、添加branches,tags,trunk目录
cd sinsvn/
mkdir branches
mkdir tags
mkdir trunk
svn add branches trunk tags
svn ci -m 'create branches trunk tags dir'
# 4、在trunk中添加测试文件,并提交到版本库
cd trunk
touch index.php
mkdir class
touch class /conn .php
svn add index.php
svn add class/
......
svn ci -m 'test file'
svn delete index.php class class/ index.php
svn ci -m 'delete files'
mkdir webgame
svn add webgame/
svn ci -m 'add webgame dir'
# 追加操作
cd webgame
cp /tmp/VMwareTools-10 .2.0-7259539. tar .gz .
cp /tmp/yum .log .
svn add *
svn ci -m 'add VMwareTools yum.log for test'
############### 这里假设130的机器上有个web项目
mkdir -p /data/webdir
cd /data/webdir
svn co svn: //192 .168.65.130 /sinsvn/trunk/webgame --username=harry --password=harry
# 追加操作
cd /data/webdir/webgame/
svn update
ll # 可以查看到更新后的结果
|
五、脚本定制更新
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# 定时更新脚本(针对整个目录自动更新的脚本,被动模式)
cat > /root/svnauto_update .sh<< "EOF"
cd /data/webdir/webgame/
svn update &>> /tmp/svnauto_update .log
EOF
chmod +x /root/svnauto_update .sh
chmod +x /etc/crontab
/etc/init .d /crond restart
# 添加至crontab计划任务中
cat >> /var/spool/cron/root << "EOF"
# svnauto_update.sh
* 09-23 * * * /bin/sh /root/svnauto_update .sh
EOF
# 自动更新脚本(针对版本号触发式更新)
#svn 目录:/data/svn/sinsvn
#站点目录:/data/webdir/webgame
#实现:
#1.找到svn项目的hooks目录,这里是/data/svn/sinsvn/hooks。目录中默认会几个对应操作的钩子模板,我们需要创建一个post-commit的文件。
find /data/svn/sinsvn/ -name hooks
#2.新建post-commit,内容如下
cat > /data/svn/sinsvn/hooks/post-commit << "EOF"
#!/bin/bash
REPOS= "$1"
REV= "$2"
export LANG=zh_CN.UTF-8
echo "Code Deployed at " $1 " Committed revision " $2 " ; `date " +%Y-%m-%d %H:%M:%S "`" >> /tmp/post-commit .log
/usr/bin/svn update --username harry --password harry /data/webdir/webgame >> /tmp/post-commit .log
EOF
chmod +x /data/svn/sinsvn/hooks/post-commit
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/bjx2020/p/8727641.html