LINUX安装SVN+添加自动同步+远程下载最新代码
LINUX安装SVN+添加自动同步+远程下载最新代码
---------------------
1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作
---------------------
#这个用户可以用来后面专门FTP远程下载该服务器上的代码的账号
groupadd svn
useradd svnroot -g svn
passwd svnroot
xxx
---------------------
2.进入/home/svnroot 目录,然后下载SVN,并解压
---------------------
cd /home/svnroot
wget http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.gz
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提交完毕后自动同步
find / -name "svn"
找到
/usr/local/../bin/..svn
----------------------
post-commit
#!/bin/bash
export LANG="zh_CN.UTF-8"
/usr/local/../bin/svn update /home/svnroot/checkout/ --username zmk --password xxx
chmod 777 post-commit #别忘记了修改这个脚本的执行权限
----------------------
11.安装ftp
----------------------
#参考http://www.centos.bz/2011/03/centos-install-vsftpd-ftp-server/
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 ftp://svnroot:@xx.xx.xxx.xxx/checkout/
cd xx.xx.xxx.xxx/checkout
find . -name ".svn" -type d | xargs rm -rf
LINUX安装SVN+添加自动同步+远程下载最新代码的更多相关文章
- linux 安装svn,并设置钩子来同步更新
linux安装svn下载 http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz 和 http://subversion.tigr ...
- Linux安装svn服务图文详解 ;出现No repository found in 'svn***问题
Linux安装svn服务 ** 示例都是用的root权限,可选择用 sudo** 1:检查 安装条件为:Linux(centos)上未安装过svn服务,若安装过或安装失败请自行删除,这里不多介绍.检查 ...
- linux安装svn服务端不使用apache
一.安装 1.查看是否安装cvs rpm -qa | grep subversion 2.安装 yum install subversion 3.测试是否安装成功 /usr/bin/svnserve ...
- linux 安装SVN
1.环境centos6.4 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve -d -r /www/sv ...
- Linux 安装SVN服务器 (转)
一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...
- [转]svn提交自动同步到web服务器
参考博文:http://my.oschina.net/wddqing/blog/201567 同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post ...
- windows,linux下SVN实现自动更新WEB目录
通过SVN进行版本库管理,每次提交后,都要在SVN服务器更新最新上传的版本到WEB目录进行同步.操作比较烦琐,而且效率也低.使用SVN钩子脚本进行WEB目录同步,可很好的解决这方面的问题.由于测试机器 ...
- Redhat linux 安装SVN服务器 CollabNetSubversionEdge
请仔细阅读安装包自带的readme文件! ================================================= 1. 先去官网,找安装包: http://subversi ...
- svn提交自动同步到web目录
环境:CentOS6.5 测试线 svn和web服务器在同一台机器上 SVN版本1.6 情景:在测试环境下,开发部提出希望提交到SVN的代码能自动同步到WEB站点目录下,解决每次都要传双份这 ...
随机推荐
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
首先对吞吐量().QPS.并发数.响应时间(RT)几个概念一直比较模糊,也不知道哪些指标可以较好的衡量系统的性能.今天特意查了些资料做一些记录:首先看一些概念(来自百度百科) 1. 响应时间(RT) ...
- Java获取系统相关信息System.getProperty()
java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目 ...
- white-space的值
white-space的值:normal 默认.空白会被浏览器忽略.pre 空白会被浏览器保留.其行为方式类似 HTML 中的 标签.nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 标签 ...
- effective C++ 札记 规定17 在单独的陈述newed对象插入智能指针
// Test.cpp : 自定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include &l ...
- expected number,sequence,or string.map evaluated instead of freemarker.template.smplehash
expected number,sequence,or string.map evaluated instead of freemarker.template.smplehash 使用freemark ...
- sql点滴41—MyISAM 和 InnoDB 讲解
原文:sql点滴41-MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型 ...
- MongoDB的upsert状态判断和pymongo使用方法
在mongo中,有一个命令非常的方便,就是upsert,顾名思义就是update+insert的作用 根据条件判断有无记录,有的话就更新记录,没有的话就插入一条记录 upsert的使用方法: Mong ...
- Android Studio之同一应用创建多个Activity(一)
1. 2. 3. 4. 本文主要是构建多个Activity的过程.
- HTML 5 在Web SQL 使用演示样本
Web sql 这是一个模拟数据库浏览器.可以使用JS操作SQL完成数据读取和写入,但是这件事情并不多,现在支持的浏览器,而其W3C规格已经停止支持.外形似它的前景不是很亮. W3C 规范:http: ...
- 实例学习SSIS(五)--理论介绍SSIS
原文:实例学习SSIS(五)--理论介绍SSIS 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS( ...