svn在linux上的安装
什么是svn
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。
1. 性能提高。SVN不管文件是文本还是二进制类型,在内部都是以二进制差异比较算法来表示文件的更新部分。这表示所有的文件在文件库中都是以差异的形式储存。而且在网络上传输的,都是较小的文件差异部分。这也使创建分支、打标签、合并等操作可以非常快地完成.
2. 对目录的组织的管理更加方便。SVN不光对文件做版本跟踪,也会对目录做版本跟踪。因此可以根据项目的需要,对目录结构随时进行修改,可以把现有的目录移动到新的地方。
3. 保证提交操作的完整性。SVN对提交操作的处理方式类似数据库的事务处理,要么全部成功,要么全部无效,保证了原子性。
svn配置
mount /dev/cdrom /media/cdrom 挂载光驱
1.安装svn服务器端
yum install subversion 从镜像下载安装svn服务器端
cd /usr/local/ //进入目录,准备创建svn目录
mkdir svn //创建一个svn目录
chmod -R 777 svn //修改目录权限为777
svnadmin create /usr/local/svn/linux //创建一个svn版本仓库sunny(sunny可以随便起名字)
cd svn/linux/conf //进入sunny版本仓库下的配置文件目录
下面要修改这个目录下的三个配置文件
(1)vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径
把
anon-access = none //改成none 12
auth-access = write 13
password-db = passwd 18
realm = linux //改成自己的版本库 30
保存
(2)vi authz //文件,创建svn组和组用户的权限
[group]
linux = pcy,trp //创建一个sunny的组,并指定两个用户gep和wce
[/] //制定根目录下的权限
@linux = rw //sunny组用户权限为读写
* = r //其他用户只有读权限
保存退出
(3) vi passwd //创建或修改用户密码
[users]
pcy = 123456 //用户名为gep的用户的密码为123456
trp = 123456 //。。。
保存退出
启动svn:
svnserve -d -r /usr/local/svn/ //这里采用多版本库的方式启动 如果是单版本库 可以svnserve -d -r /usr/local/svn/sunny
添加一行
然后要设置自启动
vi /etc/rc.d/rc.local 打开自启动文件添加
/usr/bin/svnserve -d -r /usr/local/svn/
到此为止可以从服务端检出文件了.
svn命令:
netstat -tnl |grep :3690 查看svn是否启动
ps aux |grep 'svn' 查找所有svn启动的进程
kill -9 2505 杀死2505这个查找到的svn进程
做检出 就要先在根目录下建立一个文件夹 放置要检出的文件
检出命令:
svn checkout svn://linux的ip/版本库名称 /要检出的目录路径
例子:svn checkout svn://192.168.1.107/svn(建立的目录) /aaa(要检出的文件目录)
如果是新建的文件夹 就要先把文件添加
svn add 新建的那文件
第二部就是要提交
svn commit -m "注释" xxx.php //提交文件
[root@localhost aaa]# svn commit -m "aaaaaaaaaaaa" a.php
新增 a.php
传输文件数据.
提交后的修订版为 1。
第三
两个用户同时编辑后 第三个有要编辑
那么就要svn up 取出最新版本的编辑文件
常用命令:
svn up //更新文件
svn commit -m "注释" xxx.php //提交文件
svn add 文件名 //新建文件并添加到svn
svn add *.php //(添加当前目录下所有的php文件)
svn delete test.php //删除test.php
svn log test.php //查看test文件的log信息
svn cleanup //清理当前目录
####################################设置svn自动更新,不需要在手动去做了#####################
自动更新
在vi /usr/local/svn/sunny/hooks/post-commit中加入
#!/bin/sh
#设置一些变量
SVN=/usr/bin/svn
WEB=/你要更新的目录
export LANG=en_US.UTF-8
$SVN update $WEB --username svn用户名 --password 密码
其中SVN=右边改成 svn 命令位置 一般默认为/usr/bin/svn
WEB=右边改成你实际的web目录
赋予可执行权限
chmod 777 /usr/local/svn/sunny/hooks/post-commit
安装完毕
=========================================================================
其他操作
svn up更新
svn switch --relocate svn://192.168.1.253 svn://172.19.10.250 //重新定位SVN版本库地址
// SVN版本库起动方式,现在SVN下面有 sunny、test 两个版本库
1:单版本库起动 svnserve -d -r /usr/local/svn/sunny
2:多版本库起动 svnserve -d -r /usr/local/svn
区别在于起动svn时候的命令中的启动参数-r指定的目录。
限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件
以配置 sunny 版本库为例
vi authz
[groups]
teacher = sunny,sunny1
[sunny:/] //指定版本库跟目录下的权限
@teacher = rw //teacher组用户权限为读写
* = r //其他用户只有读权限
保存退出
vi passwd 设置组中用户的账号和密码
[users]
sunny = 123456
sunny1 = 123456
svn在linux上的安装的更多相关文章
- GIT在Linux上的安装和使用简介
GIT最初是由Linus Benedict Torvalds为了更有效地管理Linux内核开发而创立的分布式版本控制软件,与常用的版本控制工具如CVS.Subversion不同,它不必服务器端软件支持 ...
- SVN(linux版)安装与使用
SVN(linux版)安装与使用 一 简述: SVN有2种运行方式,一种是 linux自带的轻量级服务器svnserve,一种是基于Apache的. 基于svnserve的,默认端口为3690,通过 ...
- jemalloc在linux上从安装到使用
jemalloc在linux上从安装到使用 上次在引导大家安装Redis时提到可能会报错: 发现了redis有用到jemalloc. 首先,jemalloc是干什么的? 我们看看作者自己的介绍: j ...
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
- 分布式缓存技术redis学习(一)——redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
- 在Linux上怎么安装和配置Apache Samza
samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...
- ODI11G 在Linux上的安装配置
ODI11G 在Linux上的安装配置 OS环境:Red hat Linux x86_64 一.JDK安装 1. 去oracle官网上下载 http://www.oracle.com/technetw ...
- 【JAVAWEB学习笔记】27_Redis:在Linux上的安装、Jedis和常用命令
一.Redis简介 1.关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 库是基于特殊的结构,并将数据存储到内存的数据库.从性 ...
- 【数据库】Mean web开发 04-MongoDB在Linux上的安装及遇到的问题
简介 Mean是JavaScript的全栈开发框架.更多介绍 用MongoDB实现持久数据的存储是Mean Web全栈开发中的一部分. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非 ...
随机推荐
- 【Beta】第四次任务发布
PM 日常管理&dev版宣传(周日开始). 后端 #99 服务发布 验收条件:使dev版能在www.buaaphylab.com下运行. 前端 #87 登录后能够查看与下载用户收藏的报告.生成 ...
- gRPC+etcd的优势分析
相比webService等可跨平台,跨语言的服务相比,gRPC更增加了以下优势 1.可以采用二进制传输,速度更快 (使用TCP传输层,而不是Http2应用层) 2.集群服务,统一注册,可靠性高( 好的 ...
- Transmission : 如何在Fedora下使用BT下载
先讲讲BT协议的名词: Glossary of BitTorrent terms Transmission 介绍 BT下载客户端 特点: 支持BT下载(.torrent 种子) 或者 磁链( magn ...
- Spring系列之谈谈对Spring IOC的理解
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...
- 在写junit test 的时候出现的java.lang.UnsupportedClassVersionError问题
今天在写为一些project 写 一些junit test 的时候,出现下面的异常: java.lang.UnsupportedClassVersionError: moneytest/Money ...
- codevs1204 寻找子串位置
题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置. 输入描述 Input Description 仅一行包含两个字符串a和b 输出描述 ...
- JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- Wireshark抓包工具
首先下载并安装Wireshark软件,最好选择中文版,因为会使你用的更顺手. 安装完毕之后,双击打开Wireshark软件,主界面还是比较清晰明了的,可是怎么用还是稀里糊涂的吧. 点击菜单栏红圈中的选 ...
- 2016年11月28日--ADO.Net 增、删、改、查
数据访问 对应命名空间:System.Data.SqlClient; SqlConnection:连接对象SqlCommand:命令对象SqlDataReader:读取器对象 CommandText: ...
- .NET LINQ 数据分区
数据分区 LINQ 中的分区指的是在不重新排列元素的情况下,将输入序列划分为两部分,然后返回其中一个部分的操作. 下图显示对一个字符序列执行三个不同的分区操作的结果. 第一个操作返 ...