正文之前,说几句关于svn和git的闲话。 

  之前用的版本控制工具主要都是svn,随着时间的推移,git以其强大灵活的分支管理功能受到大众喜爱。尤其是多人同时开发时同一项目,且不同部分功能时,git的分支管理功能显得尤为强大。并且git代码库的分布式管理,使得各个客户端代码库对服务器代码库的依赖大大减弱,代码管理灵活而又强大。

  上一个公司的项目类型就是那种,同一个项目多人开发不同模块功能,并且上线时间各个不同。版本控制工具一直在用git,对于公司项目的情况,还是充分发挥了git的多分支管理功能,项目开发也算是有条不紊。后期空降到公司一个cto,cto之前是用的svn,没有用过git,然后要求我们都统一改换svn作为版本控制工作。项目开发感觉捉襟见肘。=_=!。

  当然今天写这个博客跟以上没有什么必然联系。小伙伴们自己买了个服务器,之前在上面搭建了个svn。后来系统崩了,重装了系统,svn也没了。有个小伙伴最近要做东西,让我再搭一下。上次搭过一次,感觉不费什么事。然而操作起来也是各种google和百度,好多也记不住了。所以这次写个博客权作笔记了。当然只是svn最基本代码管理功能。

  1.先看看服务器上是不是已经安装svn了。

svnserve --version  //或者 svn --version

  如果已经安装了svn了,那么会显示svn的版本信息。

  

  如果提示是错误命令,那就是服务器还未安装svn。需要你来安装svn了。当然如果已经安装了,你也可以卸载掉旧版本(yum remove subversion),来安装新版本的svn。 

yum install subversion

  2.svn安装完成后,就可以创建版本库了。

svnadmin create /opt/svn/repository

  可能出现的问题,不存在相应的目录结构。opt是服务器根目录是存在的,而svn这个目录结构可能是不存在的。

  

  这个解决方法,只需在opt目录下创建svn目录就可以了(mkdir svn)。

  3.svn代码库创建成功后,查看repository目录下。 已经conf, db, format, hooks, locks, README.txt等文件。进入conf目录,代码库的配置文件在该目录下。有以下几个文件authz, passwd, svnserve.conf。其中authz是权限控制,可以设置哪些用户可以访问哪些目录,passwd是设置用户和密码的,svnserve.conf是设置svn相关操作的。

  a. svnserve.conf文件

  [general]
  #匿名访问的权限,可为none,read,write
  anon-access = none   #授权用户的权限,可为none,read,write
  auth-access = write   #密码数据文件的路径,如不以/开头,则为相对路径
  password-db = passwd   #访问控制文件的路径,如不以/开头,则为相对路径
  authz-db = authz   #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字,不同的代码库需要不同的realm
#我们之前创建的仓库repository,此处为此仓库名
  realm = repository

  b.passwd文件

  [users]
  #用来设置账户及密码,此处我们建立三个账户
  admin =
  xiaohua =
  xiaopeng =

  c.authz文件,该文件用来控制不同用户对不同目录的访问权限。

  #可以将passwd中建立的账户,划分到不同组中,组名由自己定义。此处我们定义两个组admin(管理员)和developer(开发人员组)。
[groups]
  admin = admin
  developer = xiaohua,xiaopeng   #定义不同目录的访问权限,设置我们之前创建的repository根目录权限。
  [repository:/]
  #设置admin组中成员,对本目录有读(r)和写(w)权限
  @admin = rw
  #设置developer组中的成员,对本目录只有读(r)权限
  @developer = r   #设置其他访问者,对本目录无任何权限
  * =   #设置repository目录下,test目录(test后不要加/)权限。
  [repository:/test]
  @developer = rw
  * =

  此处的@表示组名([groups]),当然去掉@符号,也可以直接账号来限制权限。xiaohua = rw,表示只对xiaohua这个账户具有读写权限。

  4.配置文件设置好以后,需要确定下,防火墙对svn默认的端口3690是打开的。

vi /etc/sysconfig/iptables

  添加以下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT

  保存后重启防火墙

service iptables restart

  5.svn的启动与停止。

  启动svn服务

svnserve -d -r /opt/svn/repository

  -d:守护进程 -r:svn根目录。启动时可以设置启动的端口,svnserve -d -r /opt/svn/repository --listen-port 3691。如果不设置则默认为3690。

  如果要停止svn服务,可以通过kill进程id的方式来实现。

  ps aux|grep svn   #找到svnserve服务pid
  kill - pid  #结束进程

  6.客户端(比如我们本地的计算机)安装svn工具(比如 TortoiseSVN)后,就可以在本地checkout出我们在服务器上搭建的代码库了,地址:svn://服务器ip/repository。

  以上。欢迎指正交流。

  相关参考:http://www.centoscn.com/CentosServer/ftp/2015/0115/4504.html
                    http://www.jianshu.com/p/0a5e59e4532f
         http://www.cnblogs.com/terryglp/articles/2451398.html

linux(CentOS release 6.5)环境搭建svn的更多相关文章

  1. Linux学习之CentOS(一)--CentOS6.4环境搭建

    Linux学习之CentOS(一)--CentOS6.4环境搭建http://www.cnblogs.com/xiaoluo501395377/archive/2013/03/31/CentOs.ht ...

  2. centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课

    centos LAMP第一部分-环境搭建  Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课 打命令之后可以输入: e ...

  3. centos LNMP第一部分环境搭建 LAMP LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/php/{p.conf.default,p.conf} php运行方式SAPI介绍 第二十三节课

    centos  LNMP第一部分环境搭建 LAMP安装先后顺序  LNMP安装先后顺序 php安装 安装nginx  编写nginx启动脚本   懒汉模式  mv   /usr/local/php/{ ...

  4. Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建)

    Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建) 具体案例:局域网内有两台主机,一台Linux.一台Windows,现在需要配置一台Cacti监控服务器对这两台 ...

  5. CentOS下Web服务器环境搭建LNMP一键安装包

    CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...

  6. CentOS上javaweb开发环境搭建

    CentOS上javaweb开发环境搭建 安装jdk yum list java* yum install java-1.7.0-openjdk* -y java -version 安装tomcat ...

  7. Ubuntu环境搭建svn服务器

    记录一次使用Ubuntu环境搭建svn服务器的详细步骤 一.查看是否已经安装svn 命令:svn如果显示以下信息,说明已安装   二.卸载已安装的svn 命令:sudo apt-get remove ...

  8. 【转】Ubuntu环境搭建svn服务器

    记录一次使用Ubuntu环境搭建svn服务器的详细步骤 一.查看是否已经安装svn 命令:svn如果显示以下信息,说明已安装 二.卸载已安装的svn 命令:sudo apt-get remove -- ...

  9. centos 7.3 服务器环境搭建——MySQL 安装和配置

    centos 7.3 服务器环境搭建——MySQL 安装和配置服务器信息如下:服务器:阿里云系统 centos 7.3 (阿里云该版本最新系统)mysql版本:5.7.18 (当前时间最新版本)连接服 ...

  10. Linux学习之CentOS(一)--CentOS6.5环境搭建

    一.前言 作为一个从事运维工作好几年的老运维来说,linux系统怎能不学呢?所以,这几天自己准备学习一下linux操作系统.废话不多说,直奔主题. 要学linux开发,首先得要安装linux系统吧,这 ...

随机推荐

  1. php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串

    $str="你好<我>(爱)[北京]{天安门}"; echo f1($str); //返回你好 echo f2($str); //返回我 echo f3($str); ...

  2. Hexo 博客快速整合公众号导流工具,不用互推也能实现粉丝躺增!

    readmore 插件简介 Hexo 整合 OpenWrite 平台的 readmore 插件,实现博客的每一篇文章自动增加阅读更多效果,关注公众号后方可解锁全站文章,从而实现博客流量导流到微信公众号 ...

  3. Python入门系列【附】进阶教程

    如题,本篇将讲解Python提升之路:Python作为语法简单易学的语言,入门容易精通却很难,这是共识,那么为什么会有这样的共识?精通Python的难度在哪里? Python拥有简单.形象.直观的语法 ...

  4. Potato土豆win综合提权

    0x01 NBNS和WDAP NBNS: 在 Windows 系统中的另外一种名称就是 NetBIOS 名称,准确的说 NetBIOS 名称并非是一种名字系统,而是 Windows 操作系统网络的一个 ...

  5. vue在一个方法执行完后再执行另一个方法

    vue在一个方法执行完后执行另一个方法 用Promise来实现.Promise是ES6的新特性,用于处理异步操作逻辑,用过给Promise添加then和catch函数,处理成功和失败的情况 ES7中新 ...

  6. opencv::轮廓发现(find contour in your image)

    轮廓发现(find contour) 轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法. 所以边缘提取的阈值选定会影响最终轮廓发现结果 //发现轮廓 cv::findContours( InputO ...

  7. 【阿里云IoT+YF3300】6.物联网设备报警配置

    纵然5G时代已经在时代的浪潮中展现出了它的身影,但是就目前的物联网环境中,网络问题仍旧是一个比较突出的硬伤.众所周知,在当前的物联网规划中,与其说是实现万物互联,倒不如说是行业指标数据监控.对于一些特 ...

  8. Javascript字符串常用方法详解

    字符串 字符串就是一个或多个排列在一起的字符,放在单引号或双引号之中. 'abc'"abc" length属性 js里的字符串类似于数组,都是一个一个字符拼凑在一起组成的,因此可以 ...

  9. 1.Linux-CentOS7.6安装教程

    了解Linux Linux 就是一个操作系统,主要为企业提供支持与服务. 学习Linux需要具备什么基础?能看懂中文,能看懂简单的 English ​ 1.什么是Linux? Linux:和我们常见的 ...

  10. spring在IoC容器中装配Bean详解

    1.Spring配置概述 1.1.概述 Spring容器从xml配置.java注解.spring注解中读取bean配置信息,形成bean定义注册表: 根据bean定义注册表实例化bean: 将bean ...