博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LINUX安装SVN+添加自动同步+远程下载最新代码
阅读量:5923 次
发布时间:2019-06-19

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

hot3.png

LINUX安装SVN+添加自动同步+远程下载最新代码

---------------------
1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作
---------------------
#这个用户可以用来后面专门FTP远程下载该服务器上的代码的账号
groupadd svn
useradd svnroot -g svn
passwd svnroot
xxx
---------------------
2.进入/home/svnroot 目录,然后下载SVN,并解压
---------------------
cd /home/svnroot
wget
wget
tar -xzvf subversion-1.6.17.tar.gz
tar -xzvf subversion-deps-1.6.17.tar.gz
---------------------
3.编译安装
---------------------
cd subversion-1.6.17
./configure --prefix=/usr/local/svn
Make
Make install
(/usr/local/svn/bin/svnserve --version 查看有没有安装成功)
---------------------
4.建立版本库
---------------------
mkdir -p /home/svnroot/svndata/repos1
//创建目录,home/svnroot/svndata 是所有仓库的根目录 repos1是其中的一个仓库
svnadmin create /home/svnroot/svndata/repos1
//困惑的地方我在虚拟机里面能直接使用svnadmin 但是到了阿里云的机器上则不能直接使用了,提示命令找不到 那我就采用了usr/local/svn/bin/svnadmin create /home/svnroot/svndata/repos1
//添加svnadmin 到环境变量 我不知道对不对 exprot PATH=$PATH:/usr/local/svn/bin
随着项目越来越多,容纳到SVN进行管理的东西也越来越多,包括公司资料,网站原始日志,产品图片,项目源码。
如果按照这种方式来处理的话,一个仓库是肯定不够的,因此打算创建多个仓库
在server端,新建一个目录用来存放所有的仓库。比如/usr/local/svnrepos. 然后在这个目录下建立每个项目独立

svnadmin create /usr/local/svnrepos/code

svnadmin create /usr/local/svnrepos/information

使用 svnserve -d -r /usr/local/svnrepos 启动。这样你的项目的url是:

svn://IP/code
svn://IP/information
---------------------
5.配置仓库
---------------------
cd /home/svnroot/svndata/repos1/conf
vi svnserve.conf
打开这个配置文件,可以看到很多配置项已经注释掉了,只需要按下面这几项前面的注释去掉(前面不能有空格)
[general]
anon-access = none(这里默认是read 改成none,即为匿名用户可以访问)
auth-access = write
password-db = passwd
authz-db=authz
vi passwd
添加用户和密码
[users]
User=passwd
格式为,用户=密码
vi authz
[repos1:/]
username = rw
---------------------
6.启动SNV
---------------------
svnserve -d -r /home/svnroot/svndata
netstat -anp|grep svnserve //查看SVN 端口号 默认是3690
---------------------
7.把svn的bin目录加入到环境变量之中
---------------------
vi /etc/profile
添加export PATH="$PATH:/usr/local/svn/bin"
保存退出之后运行source /etc/profile
然后执行svnserve --version 查看是否生效
---------------------
8.设置SVN自启动
---------------------
在/etc/rc.d/rc.local文件中增加这么一行
svnserve -d -r /home/svnroot/svndata &
----------------------
9.把SVN的代码检出一份
----------------------
#因为前面建立一个svnroot的身份,这里继续在svnroot的家目录进行操作
svn co svn://xx.xx.xxx.xxx/repos1 /home/svnroot/checkout/ --username zmk
#下面所有的xx.xx.xxx.xxx均表示服务器IP
#第10步之前必须进行第9步,因为更新是建立在检出之上的
----------------------
10.实现SVN提交完毕后自动同步
----------------------
post-commit
#!/bin/bash
export LANG="zh_CN.UTF-8"
svn update /home/svnroot/checkout/ --username zmk --password xxx
chmod 777 post-commit #别忘记了修改这个脚本的执行权限
----------------------
11.安装ftp
----------------------
#参考
yum install vsftp
chkconfig vsftpd on
service vsftpd restart
#别忘记了touch chroot_list
----------------------
12.写在服务器B上的脚本
----------------------
#!/bin/sh
cd /mnt/hgfs/code/svntest/xx.xx.xxx.xxx/
rm -rf *.*
wget -m -np
cd xx.xx.xxx.xxx/checkout
find . -name ".svn" -type d | xargs rm -rf

转载于:https://my.oschina.net/u/937153/blog/141087

你可能感兴趣的文章
Java实现Socket5代理服务器
查看>>
Android-异步图像装载机
查看>>
MySQL学习笔记——安装及配置环境
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
android 物理按键 监听
查看>>
npm 主要命令
查看>>
【Android Studio安装部署系列】五、新建你的第一个项目:HelloWorld
查看>>
使用Phaser开发你的第一个H5游戏(一)
查看>>
十、performSelector延时调用内存泄漏的问题
查看>>
理解JVM(二):垃圾收集算法
查看>>
Redux专题:实用
查看>>
杠上Spark、Flink?Kafka为何转型流数据平台
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
$resource in AngularJS
查看>>
初探django-使用uwsgi+supervisor+nginx来部署服务
查看>>
java虚拟机学习笔记 【1】
查看>>
DUBBO笔记
查看>>
scala基础续
查看>>