什么是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

转载于:https://www.cnblogs.com/palace/p/9600270.html

svn在linux上的安装相关推荐

  1. linux ps aux gep,svn在linux上的安装

    什么是svn SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Sub ...

  2. redis在Linux上的安装

    1.redis在Linux上的安装 1)安装redis编译的c环境,yum install gcc-c++ 2)将redis-2.6.16.tar.gz上传到Linux系统中 3)解压到/usr/lo ...

  3. linux能安装音乐软件吗,Linux上如何安装使用音乐软件SoundCloud

    Linux上如何安装使用音乐软件SoundCloud 卡饭网 梦在深巷 2015-02-13 18:16:08 对于喜欢音乐的朋友来说,SoundCloud是个不错的音乐软件,SoundCloud是德 ...

  4. Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享!

    Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享! 一.Mysql的Linux版本下载! 博主采用的是mysql-8.0.25-1.el7.x86_64.rpm- ...

  5. linux系统无线驱动在哪下载,在linux上怎么安装无线网卡驱动?

    在linux上怎么安装无线网卡驱动? 在linux上安装无线网卡驱动的方法: (1)先确定无线网卡型号,因驱动安装和型号是密切相关的,不同的型号,安装和下载驱动有所不同,但原理是一样的.图例为无线网卡 ...

  6. ubuntu intellij java_在Linux上,安装Intellij IDEA进行Scala开发

    2016年4月27日 通过瑞雷斯·艾奥阿尼 介绍 Scala是一种编程语言,最近几年开始蓬勃发展.在撰写本文时,流行的TIOBE Index将其排名为比Haskell或Go等更流行的语言更常用.如果您 ...

  7. linux mint python3.6,Linux 上如何安装并切换最新版本的 Python 3.6

    原标题:Linux 上如何安装并切换最新版本的 Python 3.6 如果你安装了 Linux 系统,正在学习 Python 并想要使用最新的版本的话,那么这篇文章就是为你而写的. -- Shekin ...

  8. 在linux环境下启动es,linux上Elasticsearch 安装配置、网页访问

    一.ElasticSearch简述 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch ...

  9. redis系列之1----redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

最新文章

  1. CSS实现各类分栏布局
  2. Linux shell控制台改变显示前缀
  3. 聊聊统一身份认证服务
  4. IntelliJ IDEA 如何从SVN导入项目 怎么部署 就是路劲和tomcat配置等等 步骤希望
  5. Modbus​协议​深入​讲解_NI
  6. 查找两个单词链表共同后缀的起始结点(C++,单链表/双向链表解法)
  7. 华为鸿蒙OS发布!余承东:如果安卓不可用,随时启用鸿蒙
  8. stats | 广义线性模型(二)——泊松回归
  9. 通用性好的win2003序列号: (推荐先用这个里面的)
  10. 机械专业与python的联系_机械转行想学python?
  11. 去掉windows10“更新并关机”
  12. android 高德amap开发一(地图创建)
  13. Wet Shark and Two Subsequences
  14. 域名注册必须实名认证 《互联网域名管理办法》11月1日实施
  15. 泉城济南——三妮儿暴走一日游
  16. html中微信添加好友超链接,微信给文字加链接代码分享(原来微信超链接是这样加的)...
  17. python 图片验证码
  18. PX4 ROS学习资源汇总
  19. 支付宝手机唤起app支付
  20. Django开发个人博客网站——12、实现不同大小的标签云样式

热门文章

  1. numpy 数组 最大值、最小值、中位数、均值、标准差、方差、总和、排序、去重
  2. jquery jQuery的入口函数 $函数 dom对象和jquery对象
  3. 车牌识别--Towards End-to-End License Plate Detection and Recognition: A Large Dataset and Baseline
  4. 人群运动--Scene-Independent Group Profiling in Crowd
  5. 膨胀卷积--Multi-scale context aggregation by dilated convolutions
  6. Linux系统16进制形式查看二进制文件
  7. Hadoop配置环境变量
  8. ajax获取php echo值,ajax 接受 php echo 与 return 区别
  9. c语言如何初始化随机数种子,关于随机数函数rand和其种子初始化
  10. java超级点击器是怎么实现的_超萌新级的Java学习心得——简单监听器