linux svn同步到本地目录,LINUX中SVN服务的搭建与实现SVN 自动同步到web目录,SVN自动启动...

一,下载相关软件:

[root@localhost test]# wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz

[root@localhost test]# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz

二,安装及配置:

1,解压,要在同一个目录下:

[root@ localhost test]# tar -zxvf subversion-1.6.1.tar.gz

[root@ localhost test]# tar -zxvf

subversion-deps-1.6.1.tar.gz

2,编译及安装:

[root@ localhost test]#cd subversion-1.6.1/

[root@ localhost subversion-1.6.1]#

./configure--prefix=/usr/local/svn/

[root@ localhost subversion-1.6.1]# make && make

install

注(可能会报错,直接复制错误信息到百度搜解决方案,就不记录了)

3,把svn相关的命令添加到环境变量中:

[root@ localhost subversion-1.6.1]# echo

"exportPATH=$PATH:/usr/local/svn/bin/" >> /etc/profile

[root@ localhost subversion-1.6.1]# source /etc/profile

三,建立测试仓库:

1,建立SVN的根目录:

[root@localhost subversion-1.6.1]# mkdir -p /data/svn/{目录自己选择}

-p:

可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

2,建立一个测试仓库:

进入到根目录运行下面的命令,就会在/data/svn/下面新建一个名字叫firstsvn的库

[root@localhost subversion-1.6.1]# svnadmin create firstsvn

3、导入版本库

svn import [源路径] [目标版本库路径] -m [日志信息]

svn import svn/ file:///data/svn/firstsvn -m '初始化svn目录'

3,修改配置文件:

[root@localhost svnfirst]# cd /data/svn/firstsvn/conf/

[root@ localhost conf]# vim svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = /data/svn/firstsvn/passwd

authz-db = /data/svn/firstsvn/authz

[root@ localhost conf]# vim passwd

svnname = 123456

用户名=密码

[root@ localhost conf]# vim authz

[groups]

admin = xiaoran.shen,test1

user = test2

[/]

@admin = rw

@user = rw

#除了以上用户其余用户权限为空,禁止访问

* =

四,在Windows 上安装svn客户端:

五,启服务器及测试:

1,启SVN服务,并指定SVN的根目录:

查看SVN服务是否启动

ps aux | grep svnserve

停止服务: killall svnserve

启动服务指定根目录

[root@localhost test]# svnserve -d -r /data/svn/

2,服务已经正常起来:

[root@localhost test]# netstat -tunlp | grep svn

tcp 0 00.0.0.0:3690 0.0.0.0:* LISTEN 8646/svnserve

3,测试:

在Windows

盘符下新建一个名称为firstsvn的目录,在此目录上点击右键,选择Checkout,在首行填写svn服务器的IP地址及仓库名称

例:svn://192.168.1.12/firstsvn

六、配置post-commit,实现自动同步svn版本库文件到web目录

为了可以在修改完代码提交到SVN服务器后,WEB服务器直接同步.需要配置SVN的钩子,打开hooks目录,

/data/svn/svnfirst/hooks

可以看到有一个post-commit.tmpl文件,这是一个模板文件,复制一份放在此目录下,命名为post-commit,并将其用户组设为www,并设置为可执行:

chown www:www post-commit

chmod +x post-commit

这样就有了访问www目录的权限。*里面原有的代码全部注释掉*.这里可以执行shell命令,每次commit完成后都会调用此文件.

我的文件内容为:

#!/bin/sh

#设定环境变量,如果没有设定可能会出现update报错

export LANG=en_US.UTF-8

REPOS="$1"

REV="$2"

SVN_PATH=/usr/localh/svn/bin/svn{服务器上svn安装的路径}

WEB_PATH=/home/wwwroot/default{web站点目录,如果根目录下有多个项目还需要把要同步的项目文件夹的名称写上,要与svn中的名字相同}

LOG_PATH=/tmp/svn_update.log{日志文件}

$SVN_PATH update $WEB_PATH --username user(svn的用户名) --password

password(svn用户名对应的密码) --no-auth-cache >>

$LOG_PATH

说明:

1、#!/bin/sh 说明是执行shell命令

2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。

如果你是GBK编码可能会提示:Erroroutput could not be translated from the native

locale to UTF-8

这是客户端和服务器编码的问题,默认是utf-8,可尝试设置export

LANG=zh_CN.GBK或者exportLANG=zh_CN.UTF-8

如果不行的话可以重启SVN服务

结束服务:killall svnserve

启动:svnserve -d -r /data/svn

设置SVN服务随机自启

1、编辑rc.local文件

#vi /etc/rc.local

进入到rc.local文件

加入如下启动命令:

/usr/local/svn/bin/svnserve -d -r /data/svn/

注:

/usr/local/svn/bin/svnserve是SVN svnserve文件的安装绝对路径,

/data/svn/是svn版本库根目录的绝对路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

485 九针头_张元英安宥真还是孩子,手臂还有疫苗接种痕迹,九针头太吓人

点击右上角“关注”,了解韩娱等最新娱乐消息Izone四月携迷你二辑《HEART*IZ》回归,成绩喜人,不仅拿到了六个一位,在Oricon第一周的周专辑排行榜中位居1位,是唯一进入Oricon周专辑排行榜前五名的韩国专辑。不仅如此&…

结构体内元素不确定_氮长叶,磷长果,那么生物菌肥能长啥?看完终于不纠结了...

农民朋友们都知道,“庄稼一枝花,全靠肥当家”,肥料对于作物产量的高低起着决定性因素。蔬菜的产量、品质、病虫害、早衰、死亡、落花、落果、干尖干叶等都与肥料有着密切的关系。如今市面上肥料种类五花八门,有氮磷钾肥、中微量元…

linux中iptable中端口,Linux如何打开iptables中的端口

举例:开放10000端口的解决步骤如下:1、修改/etc/sysconfig/iptables文件,增加如下一行:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT重启 iptablesservice iptables restart2、重启防火墙…

umi权限路由_Umi 小白纪实(三)—— 震惊!路由竟然如此强大!

在《Umi 小白纪实(一)》中有提到过简单的路由配置和使用,但这只是冰山一角借用一句广告词,Umi 路由的能量,超乎你的想象一、基本用法Umi 的路由根结点是全局 layout src/layouts/index.js路由会将相应的页面组件映射到上面的 props.children…

openssl 添加自定义算法_GitHub:用PyTorch实现17种深度强化学习算法

【新智元导读】深度强化学习已经在许多领域取得了瞩目的成就,并且仍是各大领域受热捧的方向之一。本文推荐一个用 PyTorch 实现了 17 种深度强化学习算法的教程和代码库,帮助大家在实践中理解深度 RL 算法。深度强化学习已经在许多领域取得了瞩目的成就&…

node linux脚本,用Shell脚本快速搭建Ubuntu下的Nodejs开发环境

nodejs的确是很火,以前倒腾过,但是从来没有认真记录下什么。在ubuntu下搭建它的开发环境尝尝鲜,有一个捷径,它能让系统自动帮你安装所需要的东西,我们生成一段shell脚本,让它来完成以下工作:安装…

sync是同步还是非同步_音视频是怎么保持同步的?(四)

今天我们来继续讲音视频是怎么保持同步的。常用同步策略前面已经说了,实现音视频同步,在播放时,需要进行选定一个重要参考时钟,读取帧上的时间戳,同时企业根据的参考时钟来动态管理调节播放。它是目前已知的是&#xf…

openssl 测试加密卡_OpenSSL自带的aes_128_ecb加密函数——密文长度测试

OpenSSL自带的aes_128_ecb加密函数——密文长度测试发表于2017年11月29日 阅读人数(3608)近来要用到对称加密,就是使用了openssl的库给文件加密,选择的128位的分块加密,对称加密有分块加密和流加密两种。在实验中要考虑文件的长度所以关注到了…

linux命令行安装谷歌浏览器,Linux(ubuntu) 三行代码搞定安装谷歌浏览器

.NET微信公众号开发-4.0公众号消息处理一.前言 微信公众平台的消息处理还是比较完善的,有最基本的文本消息,到图文消息,到图片消息,语音消息,视频消息,音乐消息其基本原理都是一样的,只不过所post的xml数据有所差别,在处理消息之前,我们 ...2、面向对象以…

电脑下面的任务栏怎么取消隐藏_电脑工具栏怎么调到下面

任务栏的隐藏与显示很简单,有时我们在需要时可以灵活的将其隐藏,还原,下面为大家介绍一下电脑工具栏怎么调到下面的方法。电脑工具栏怎么调到下面一、直接使用鼠标拖拽的方式移动“任务栏”用鼠标左键按住任务栏的空白区域不放,拖…

uiswitch样式_Swift - 表格UITableView的plain、grouped两种样式详解(附分组头悬停)

在表格 tableview初始化的时候我们可以指定需要使用的 UITableViewStyle样式,可用的样式一共有两种:.plain和 .grouped。下面分别对它们做介绍。一、plain模式1,默认样式在 plain模式下,如果 tableview有多个 section(分区、分组)…

全志线刷工具如何刷linux,全志 Allwinner V3S 开发环境搭建 (二)安装必要工具

1、libncurses5-devsudo apt-get install libncurses5-devmake menuconfig 配置工程时用到2、GITsudo apt-get install git下载github仓库时使用3、arm-linux-gnueabihf编译工具链下载:wget https://releases.linaro.org/components/toolchain/binaries/latest/arm-…

excel怎么启用宏_IT技巧分享51: 解决打开Excel文件提示发现不可读取的内容

在使用过程中难免会碰到一些棘手的问题,比如:Excel打不开,提示为不可读取内容,当遇到这些问题我们改怎么处理呢?经百度一下发现主要原因是因为引用了外部文档数据、指向了外部文档中的宏等等。造成故障的原因&#xff…

python输出矩阵的转置_Python 矩阵转置的几种方法小结

我就废话不多说了,直接上代码吧!#Python的matrix转置matrix [[1,2,3,4],[5,6,7,8],[9,10,11,12]]def printmatrix(m):for ele in m:for i in ele:print("%2d" %i,end " ")print()#1、利用元祖的特性进行转置def transformMatrix(m…

linux加一个2t硬盘吗,在linux下新增一块硬盘的操作。(包含大于2T的硬盘在linux下挂载操作)...

扩展后执行fdisk -l查看是否成功[rootlocalhost ~ ]# fdisk - lDisk / dev / sda: 16.1 GB, 16106127360 bytes255 heads, 63 sectors / track, 1958 cylindersUnits cylinders of 16065 * 512 8225280 bytesDevice Boot Start End …

JQ 全选后获取选中的值_JQ完全学习版本

获得input标签中name属性名字包含a 的标签对象书写。Function(“input[name * a]”)$("input:disabled")这个选择器的作用Input下隐藏的对象$(":input")和$("input");这两个选择器的区别前者是表单的内容,后者是所有input标签获得一个…

audio h5 src 变了之后_我在叩丁狼学H5

#我在叩丁狼学H5#最近接触到了一些前端框架,像Vue.js,React,发现小程序的框架体系跟它们很像。它们都推崇模块化,组件化,数据与元素绑定。这样没有繁琐的DOM操作,组件之间完全分离,样式和逻辑全…

linux的samb配置文件,Linux系统如何配置samba文件服务器?

安装samba服务软件包.1.确认当前系统中至少安装有samba、samba-client、samba-common这三个软件包,命令如下:[rootlinux-01~]#rpm-qa|grepsambasamba-common-3.0.33-3.7.el5samba-3.0.33-3.7.el5samba-client-3.0.33-3.7.el52.有时在安装samba包时可能会出现下面的错误提示:[ro…

依据imu姿态角计算z轴倾角_1. 姿态的表示方法

刚体的姿态(attitude)有很多种表示方法,关于这个话题有一篇十分出名的综述[1],也是这篇文章的主要资料来源。这篇文章从二维旋转开始,会讨论旋转矢量、旋转矩阵、四元数、欧拉角等旋转的表示方法。在开始讨论前&#x…

c# mongodb or查询_C# MongoDB 查询方法

public List GetCollectionByBillCode(string BillCode){List list new List();// 根据集合名称获取集合string collectionFullName ConfigurationManager.AppSettings["collectionName"];var collection _database.GetCollection(collectionFullName);var quert …