正文之前,说几句关于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. 关于Python json解析过程遇到的TypeError: expected string or buffer

    关于Python json解析过程遇到的问题:(爬取天气json数据所遇到的问题http://tianqi.2345.com/) part.1 url——http://tianqi.2345.com/ ...

  2. [Python] Python 学习记录(2)

    1.range(x,y) [x,y) >>> range(0,4) #0,1,2,3 >>> range(1,4) #1,2,3 2.dics dics.get(k ...

  3. SpringBoot2+Netty打造通俗简版RPC通信框架(升级版)

    背景         上篇文章我简单的介绍了自己打造的通俗简版RPC通信框架,这篇是对简版的增强~         如果大家对此项目还感兴趣的话,可到码云上瞄瞄:Netty-RPC         上 ...

  4. JVM(三)初始化

    字节码指令和符号引用.直接引用 1.主动引用和被动引用 主动引用:虚拟机规定只有满足四个情况的的情况下,才会进行主动引用.    被动引用:除过四种情况的引用是被动引用.     只有主动引用才会初始 ...

  5. Java-Thread01之创建线程

    ------ ![](https://img2018.cnblogs.com/blog/1822322/201910/1822322-20191012203044528-233907422.jpg) ...

  6. 【原创】(七)Linux内存管理 - zoned page frame allocator - 2

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  7. 手把手带你体验Stream流

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 上一篇讲解到了Lambda表达式的使用<最近学 ...

  8. B-概率论-常见的概率分布模型

    目录 常见的概率分布模型 一.离散概率分布函数 二.连续概率分布函数 三.联合分布函数 四.多项分布(Multinomial Distribution) 4.1 多项分布简介 4.2 多项分布公式解析 ...

  9. PowerBI系列之入门案例动态销售报告

    本文将讲解如何从零开始使用PowerBI Desktop制作一份动态销售报告.帮助大家快速入门PowerBI Desktop的操作.我们先来看一下一份动态销售报告的构成. 1.左上角放置了小黎子数据分 ...

  10. .Net Core API使用ODP.NET操作Oracle数据库

    .Net Core API使用ODP.NET操作Oracle数据库 1.下载Oracle.ManagerDataAccess.Core. 右键依赖项——管理NuGet程序包. 在浏览选项中查询Orac ...