环境

Centos 7

SVN 1.7

安装SVN

Shell> yum install svn -y

准备配置和仓库

Shell> mkdir -p /mydata/repo
Shell> cd /mydata/repo/
Shell> svnadmin create erp  #创建一个代码库,这里以erp为例

代码库的配置文件位于/mydata/repo/erp/conf/,共三个,下面依次进行修改。

修改总配置文件 svnserve.conf

[general]
anon-access = none      #禁止匿名访问
auth-access = write      #登录用户可以有写权限
password-db = passwd     #用户名密码的配置文件
authz-db = authz       #用户权限的配置文件
realm = My SVN Repository  #仓库的说明文本

修改用户及其密码的配置文件 passwd

[users]
user1 = 111
user2 = 222
user3 = 333

修改权限的配置文件 authz

[groups]  #用户组,建议所有用户都配置到组以方便权限管理,单个用户是可以存在于多个组的
admin = user1     #管理员
common = user2,user3 #普通用户
[/]    #根目录,此处的配置也是该库的默认权限
@admin = rw  #管理员默认有全部的读写权限
* =       #其他默认没有任何权限 [/trunk]  #主干,此处未指定的管理员则会继承根目录的读写权限,下同
@common = rw  #普通用户有读写权限
[/branches]  #分支
@common = rw  #普通用户有读写权限 [/tags]  #标记
@common = r  #普通用户只有读权限

注:这三个配置文件修改后不需要重启即可生效。

配置svnserve服务

修改配置文件 /etc/sysconfig/svnserve,通过 -r 指定根目录

OPTIONS="-r /mydata/repo/erp"

默认端口是3690,若需要修改可以在OPTIONS中加上 --listen-port [port]

默认不打印日志,所需要在在OPTIONS中加上 --log-file [file]

启动并配置开机自启

Shell> systemctl start svnserve
Shell> systemctl enable svnserve

测试使用

第一次输入用户名密码后会提示保存,以后就不需要再输入了

若不想保存更不想总提示保存,那就每个svn命令都加上这三个参数:--username user1 --password 111 --no-auth-cache

Shell> svn mkdir svn://localhost/{trunk,branches,tags} -m '创建基本目录'
Shell> svn co svn://localhost/trunk
Shell> cd trunk/
Shell> touch 1.txt
Shell> svn add *
Shell> svn ci -m '添加文件1.txt'
Shell> svn up
Shell> svn log
------------------------------------------------------------------------
r2 | user1 | 2020-01-10 12:14:32 +0800 (五, 2020-01-10) | 1 行 添加文件1.txt
------------------------------------------------------------------------
r1 | user1 | 2020-01-10 12:10:23 +0800 (五, 2020-01-10) | 1 行 创建基本目录
------------------------------------------------------------------------

多库模式

上文中,库的根目录直接指向了erp,表示这是单库模式,该svn服务只有一个项目库,若在/mydata/repo下还有其他项目,比如oa、crm等

那么需要将根目录指向上级目录,修改 /etc/sysconfig/svnserve

OPTIONS="-r /mydata/repo"

那么在访问时需要加上项目名,比如:

Shell> svn ls svn://localhost/erp

另外,要注意每个项目使用的是它目录下conf中的配置文件,需要分开单独维护。

不过,可以通过参数--config-file指定共用的配置,比如将erp的配置复制到/etc/svnserve/conf作为共用,需要修改 /etc/sysconfig/svnserve

OPTIONS="-r /mydata/repo --config-file /etc/svnserve/conf/svnserve.conf"

然后,需要修改 /etc/svnserve/conf/authz 增加项目名:

[erp:/]
@admin = rw
* = [ao:/]
@admin = rw
* =
[erp:/trunk]
@common = rw ...略...

注:使用了--config-file参数,在修改了配置文件后,必须重启svnserve服务才能生效;而且,通常多项目时权限情况较复杂,还是建议每个项目用自己单独的配置比较合适。

单库多项

规模不大且权限分配不复杂的情况当然也是存在的,这种可以考虑用单库模式(库名可以用公司名),然后库内通过文件夹区分项目即可:

repo/
└── mycompany
    ├── crm
    │   ├── branches
    │   ├── tags
    │   └── trunk
    ├── erp
    │   ├── branches
    │   ├── tags
    │   └── trunk
    └── oa
        ├── branches
        ├── tags
        └── trunk

over

Centos7配置SVN服务端的更多相关文章

  1. Centos7 配置 svn服务端

    转载至:Linux(阿里云Centos7)环境下搭建svn服务器以及权限配置详细步骤 本篇文章主要介绍在CentOS7中采用yum安装方式.优点:简单,一键安装,不用手动配置环境变量等.缺点:安装位置 ...

  2. (二)svn服务端安装配置

    两种服务端安装包 官方安装包 官方网站:http://subversion.apache.org/ 下载:http://subversion.apache.org/download.cgi 官方提供的 ...

  3. Linux中如何安装配置Mysql和SVN服务端

    目标Linux系统为centOS 一.安装登陆mysql   1.直接以root用户运行:yum install mysql 和yum install mysql-server等带安装完成. 2.安装 ...

  4. 阿里云ESC搭建SVN服务端

    CentOS7)下yum命令快速安装svn服务端,学习在思考中独孤中度过,在孤独中进取! 01.SVN服务的安装(subversion) 02.ESC安全组策略 1.在线安装svn服务 $ sudo  ...

  5. 最全Linux搭建SVN服务端教程

    文章首推 支付宝接口对接 高德地图调用 验证码登录 QQ邮箱登录 今日主题:Linux搭建SVN服务端 简介 相信程序员对SVN还是不陌生的,虽然现在用Git比较多,但是SVN也是用的,SVN可以做代 ...

  6. svn服务端和eclipse配合使用

    今天弄了个svn服务器来做项目的版本控制,讲讲我做的步骤吧 1.安装svn服务端 2.下载subclipse插件 3.将subclipse插件安装到eclipse上,点击Install New Sof ...

  7. suse安装svn服务端和客户端的使用

    suse安装svn服务端 一. 安装服务端 配置网络安装源(suse11sp1为例) 新建11.1.repo11.1为软件源名称,可自定义文件并添加如下内容后保存 linux-e0xg:/etc/zy ...

  8. svn服务端安装、权限修改以及客户端的使用

    2017-10-1016:10:2 svn服务端安装.权限修改以及客户端的使用 svn服务端.客户端.汉化包下载 http://pan.baidu.com/s/1c1Ogj2C 1.安装服务器端程序( ...

  9. SpringCloud系列九:SpringCloudConfig 基础配置(SpringCloudConfig 的基本概念、配置 SpringCloudConfig 服务端、抓取配置文件信息、客户端使用 SpringCloudConfig 进行配置、单仓库目录匹配、应用仓库自动选择、仓库匹配模式)

    1.概念:SpringCloudConfig 基础配置 2.具体内容 通过名词就可以发现,SpringCloudConfig 核心作用一定就在于进行配置文件的管理上.也就是说为了更好的进行所有微服务的 ...

随机推荐

  1. jquery弹窗插件layer:layer.layui.com

    这两天在做抽奖转盘功能,浏览器自带的alert弹出框太low,本人又基本不会前端, 于是借鉴前人用fancybox插件做的效果 结果没看懂其写法(http://www.0101shop.com/goo ...

  2. 阿里云Ubuntu 18.04安装图形界面

    #!/bin/bash #更新软件库 apt-get update #升级软件 apt-get upgrade #安装ubuntu桌面系统 apt-get install ubuntu-desktop

  3. 《图解HTTP》读书笔记(六:HTTP状态码)

    状态码的职责是当客户端向服务器端发送请求时, 描述返回的请求结果. 借助状态码, 用户可以知道服务器端是正常处理了请求, 还是出现了错误. 状态码类别 HTTP状态码由三个十进制数字组成,第一个十进制 ...

  4. AIX7.1环境打补丁缺少bash OPATCHAUTO-72049

    DB:12.1.0.2.0 RAC OS:AIX 7.1 [To patch only the GI home] su - root export UNZIPPED_PATCH_LOCATION=/o ...

  5. FB面经Prepare: Email User

    有一些账号,账号里面有一个或多个email, 如果两个账号有共同的email,则认为这两个账号是同一个人,找出哪些账号是同一个人 输入是这样的:数字是用户,字母是邮箱,有很多人有多个邮箱,找出相同的用 ...

  6. web框架实现购物车数量加减

    企业开发中经常是团队协作,每个人分配一个小的模块,比如说购物车模块,数量加减这一块人们首先想到的就是通过jquery实现,其实作为一个后端接口开发的程序猿也可以用自己更擅长的后端的逻辑代码来实现,那我 ...

  7. 在C#中GUID生成的四种格式

    var uuid = Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12 var uuidN = Guid.NewGu ...

  8. C# 实现http不同方法的请求

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  9. Why ngx-uploader doesn't like to cooperate with .net core 2.x?

    The POST action seems to have no effect on the .net core controller. If you put [IgnoreAntiforgeryTo ...

  10. 使用PHP实现RSA算法的加密和解密

    本文提供使用RSA算法加密解密数据的PHP程序类(签名和验签的实现方式可以查看使用PHP实现RSA算法的签名和验签 这篇文章),封装了格式化公钥和私钥文件的方法,这样无论使用什么格式的公钥或者私钥都可 ...