一、Svn介绍

  subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linuxwindows,但较多安装在linux下。

  svn服务器常用的有两种运行方式:独立和基于apache (也可基于nginx等web服务)

  svn客户端是tortoisesvn

作用:

  在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。由源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后开发人员可以在本地修改,然后用svn命令进行提交。而不同的部门也可以上传些资料提供本部门的人员上传下载,类似于ftp,网盘之类的功能。

二、Svn搭建

  搭建有两种模式;一种是独立的svn服务,另一种是基于web的svn服务,例如Apache、nginx等。而web模式的svn是基于独立服务器之上建立的

1.)推荐简单点的yum安装,就不用在考虑各种依赖关系了。

  yum install -y  subversion ,安装完之后查看下:rpm -ql  subversion ,如图所示,代表安装成功:

  

2.)Svn配置

单版本库:

  1.首先创建版本库目录:mkdir  -p  /opt/svn/               "目录可以随意创建指定"。

  2.创建版本库:svnadmin  create /opt/svn/zt,创建好之后会在zt版本库中生成如图所示的几个文件     "库名可以随意创建指定"。

  

  3.进入到conf中会有三个配置文件:

  authz:权限配置文件       

   

  passwd:密码文件    

     

  svnserve.conf:版本库配置文件“进入版本库配置文件,打开下面的几个注释,注意得顶头写”

anon-access = read                #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /opt/svn/zt # 认证空间名,版本库所在目录

  

3.)上诉配置完成之后启动版本库:svnserve   -d   -r /opt/svn/zt

4.)多版本库:

版本库的创立与上述一样,但是不推荐使用多版本库,因其要实现的功能单版本库也可以做到,而且管理维护相比较难。

  如果想在独立svn服务器上运行多个版本库需要为其指定端口。

  svnserve --listen-port 3691 -d -r  /opt/svn/zt/

   svnserve --listen-port 3692 -d -r  /opt/svn/repos/

   svnserve -d -r /opt/svn/

重启完各个版本库之后再把整个版本库目录启动

5.)客户端访问

  下载tortoisesvn,安装完成后,选择文件夹右击checkout,然后进行svn的访问,如图所示:

  独立svn的访问:svn://ipaddress:/svn/***  or    svn://ipaddress、svn://ipaddress/****

  基于web的访问(端口可改):http://ipaddress:80/svn/***   or  http://ipaddress、http://ipaddress/****

  关于svn的访问格式是不确定的,得多试试,有时候第一种访问格式好使但是再次使用或者在其他机器上进行操作的时候就突然不行了,不知道是为什么。

  

三、基于apache的svn安装与配置

ps -ef |grep httpd查询apache是否存在 ,反之需yum -y install mod_dav_svn httpd

mod_dav_svn :是Apache的svn模块(可基于yum安装Apache后,进行yum安装mod_dav_svn而不需要其他操作)

1.) 查看svn验证模块 : ls /etc/httpd/modules/ | grep svn

  mod_authz_svn.so     mod_dav_svn.so

2.)   相关配置文件若不存在可建立:vim /etc/httpd/conf.d/subversion.conf

  

  SVNPath 定义单版本库

  SVNParentpath 定义多版本库,当存在多个版本库时此路径定义为all版本库目录;“权限与密码配置文件可能需要指定在版本库目录中,也可能不需要。”

  注意“可与独立svn同用authz文件,但是不可同用passwd文件”

  

3.)创建访问用户(第一创建需要加 -c,代表新建的第一个用户),但是别对已有的密码文件执行此命令,否则会清空所有的信息仅保留方才创建的用户。

  htpasswd -c /opt/svn/passwd abc

  之后创建用户的命令:htpasswd -b /opt/svn/passwd abcd

  删除用户:htpasswd -D passwd abc

4.).赋予权限问题

  仅使用Apache模式如下,若与独立svn共用需指定相应组或者属主

  chown -R apache.apache /opt/svn/版本库

  chmod -R 777 /opt/svn/

5.)authz配置文件讲解

  

[groups]       #在这里设置组,=前是组名,=后面是用户,多用户时可用“,”分开
admin = zt
test = abc,user [/] #版本库的根目录,表示对此库有某种权限的配置
@admin = rw
* = r #所有用户 [/Documents] #版本库根目录下的子目录
@test = rw [Documents/other] 不加@代表单个用户,加@代表组
user = r

注意赋权时的层次,权限冲突也会照成整个服务器崩掉,而且版本库路径在authz中不可以有乱码否则也不行

创建完成之后只需要重启httpd 就好了service httpd restart

  

error分析
造成error:Unable to connect to a repository at URL的可能:
1、)svn整体路劲权限、auth中的用户权限
2、)svn所有配置文件中的某个配置项前有空格
3、)独立svn与websvn创建密码的方式不一致,将密码文件混淆使用

不断的循环弹出登录框:
1.)清楚客户端账户缓存、或删除客户端账户文件保存目录
2.)账户不存在或密码错误
3.)server端密码文件清空“注意:在创建用户时加-C,会默认清空密码文件”

注意点:

账户不加入权限认证文件中将具有任何权限
在测试权限的时候千万要注意R/读,W/写的意义,当根目录*=r时,某目录中即使没有设置相应用户的权限,该用户依然可以访问下载。

Svn———搭建及配置的更多相关文章

  1. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  2. 【SVN】Linux下svn搭建配置全过程——初学者轻松上手篇

    版本控制主要用到的是git和svn,其中svn界面化使用操作简单,本篇简单介绍SVN搭建配置全过程. 1. 下载并安装 yum install subversion 查看版本 svnserve --v ...

  3. Ubuntu SVN服务器的搭建与配置(转)

    Ubuntu SVN服务器的搭建与配置 一.         安装 sudo apt-get install subversion sudo apt-get install libapache2-sv ...

  4. linux下svn 搭建

    linux 下SVN搭建加自动提交更新到指定目录一.安装#yum install subversion       yum安装SVN#mkdir -p /opt/svn/repos       创建s ...

  5. svn搭建

    原文:svn搭建 二.Subversion的安装与测试 Subversion的配置方式有很多种,同时也可以配置不同的操作系统之上,本文我讲解的是Subversion 1.5.4 for Apache2 ...

  6. Hudson+Maven+Svn搭建持续集成环境

    Hudson+Maven+Svn搭建持续集成环境 博客分类: 配置管理 mavenSVNTomcat项目管理配置管理 一.所用开发工具 1.    Hudson: Hudson 是一种革命性的开放源码 ...

  7. jenkins和svn搭建自动代码构建发布

    jenkins安装和配置 .安装jenkins .yum install java wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins. ...

  8. Docker+Jenkins+Maven+SVN搭建持续集成环境

    Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...

  9. 使用Mac自带svn搭建服务器,并使用idea进行连接

    一.检查Mac自带SVN版本号 二.创建代码仓库 $ mkdir -p /Users/Shared/svn/repository $ svnadmin create /Users/Shared/svn ...

随机推荐

  1. Ansible系列(二):选项和常用模块

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  2. [03] Servlet继承关系和生命周期

    1.Servlet的继承关系 假如现有我们自定义的一个Servlet,继承HttpServlet,那么实际上它的继承链如下图:   可以看到,核心的部分在于: 两个顶级接口 Servlet Servl ...

  3. Windows下chm转换为html的超简单方法

    摘要:通过调用Windows命令,将chm 文件转换为html 文件 概述:很多程序员朋友都会遇到这样的问题,看一个离线版的帮助文档(chm文件),总会产生一个索引文件(该文件的chw文件), 而且有 ...

  4. 【 js 基础 】关于this

    this 关键字是 Javascript 中很特别的一个关键字,被自动定义在所有函数的作用域中.this提供了一种更优雅的方式隐式"传递"一个对象的引用.今天就来说说 this 的 ...

  5. escape()、encodeURI()、encodeURIComponent()区别详解(转)

      JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,dec ...

  6. 程序员的自我修养九Windows下的动态链接

    9.1 DLL简介 DLL即动态链接库的缩写,它相对于Linux下的共享对象. Windows下的DLL文件和EXE文件实际上是一个概念,它们都是有PE格式的二进制文件. 微软希望通过DLL机制加强软 ...

  7. 80端口被system 占用

    1 运行'netstat -ano'发现80端口被pid=4的进程占用 2 打开任务管理器,发现pid=4的进程,其实是system进程,其对应的进程描述是NT kernel & system ...

  8. Python文件复制(txt文件)

    功能:这个py脚本是把一个txt文件(源文件)复制到另一个txt文件(目的文件)里面 算法思路: 程序首先判断源文件(用exists函数判断)和目的文件是否存在,如果不存在则输出文件路径不存在,如果存 ...

  9. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  10. [js高手之路] html5 canvas动画教程 - 匀速运动

    匀速运动:指的是物体在一条直线上运动,并且物体在任何相等时间间隔内通过的位移都是相等的.其实就是匀速直线运动,它的特点是加速度为0,从定义可知,在任何相等的时间间隔内,速度大小和方向是相同的. < ...