Linux搭建SVN环境(最新版)

  1. 最新版本号(svn-1.14)
    https://opensource.wandisco.com/centos/7
  2. 更新版本库

    sudo tee /etc/yum.repos.d/wandisco-svn.repo <<-'EOF'
    [WandiscoSVN]
    name=Wandisco SVN Repo
    baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.14/RPMS/$basearch/
    enabled=1
    gpgcheck=0
    EOF
  3. 执行安装
    yum remove subversion && yum -y install subversion
  4. 创建仓库
    mkdir -p /opt/svn/repos && svnadmin create /opt/svn/repos
  5. 创建用户
    编辑:/opt/svn/repos/conf/passwd
    [users]
    admin=123456
    aaaaaa=123456
    bbbbbb=123456
    cccccc=123456
    dddddd=123456
  6. 分配权限
    编辑:/opt/svn/repos/conf/authz
    [groups]
    ProjectName_1=admin,aaaaaa,bbbbbb
    ProjectName_2=admin,cccccc,dddddd
    # 注意:组名为项目名并为项目组分配成员[/ProjectName_1]
    @ProjectName_1=rw
    *=
    # 注意:只有ProjectName_1组成员可以访问svn://192.168.1.97:3690/ProjectName_1且具有读写权限[/ProjectName_2]
    @ProjectName_2=rw
    *=
    # 注意:只有ProjectName_2组成员可以访问svn://192.168.1.97:3690/ProjectName_2且具有读写权限[/]
    admin=rw
    *=
    # 注意:只有admin可以访问仓库根路径svn://192.168.1.97:3690/且具有读写权限(可在根路径创建项目)
  7. 配置文件
    编辑:/opt/svn/repos/conf/svnserve.conf
    [general]
    anon-access=none
    auth-access=write
    password-db=passwd
    authz-db=authz
    realm=/opt/svn/repos
    # 注意:/opt/svn/repos为仓库路径
  8. 启动服务
    启动服务:svnserve -d -r /opt/svn/repos  --listen-port=3690 --config-file=/opt/svn/repos/conf/svnserve.conf
    查看服务:ps -ef | grep svnserve
    关闭服务:kill -9 PID
    注意:/opt/svn/repos为仓库路径,/opt/svn/repos/conf/svnserve.conf为配置文件路径
  9. 开机启动
    #----------------------------------------------------------
    sudo tee /usr/bin/svn.sh <<-'EOF'
    #! /bin/bash
    /usr/bin/svnserve -d -r /opt/svn/repos --listen-port=3690 --config-file=/opt/svn/repos/conf/svnserve.conf
    EOF
    chmod +x /usr/bin/svn.sh
    #----------------------------------------------------------
    sudo tee /etc/systemd/system/svn.service <<-'EOF'
    [Unit]
    Description=SVN
    After=syslog.target network.target
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/bin/svn.sh
    [Install]
    WantedBy=multi-user.target
    EOF
    #----------------------------------------------------------
    systemctl enable svn
    #----------------------------------------------------------
    reboot
  10. 开放端口
    firewall-cmd --zone=public --add-port=3690/tcp --permanent && firewall-cmd --reload
  11. 创建项目
    1.admin用户浏览版本库:svn://192.168.1.97:3690/
    2.项目文件夹添加到仓库,文件夹名称与访问路径[/ProjectName_1][/ProjectName_2]一致


  12. 检出项目

    根据权限配置可以验证:/opt/svn/repos/conf/authz
    用户aaaaaa和bbbbbb可以访问并检出代码svn://192.168.1.97:3690/ProjectName_1
    用户cccccc和dddddd可以访问并检出代码svn://192.168.1.97:3690/ProjectName_2




    用户aaaaaa无法访问svn://192.168.1.97:3690/ProjectName_2,切换用户cccccc后可以访问





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2696.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django中使用反向关系名称(related_name)解决由“多对多”关系引起的字段名字冲突问题引起的迁移命令报错。

当在模型中为关系字段添加了related_name参数后&#xff0c;您可以使用该参数指定的名称来引用反向关系。下面是一个简单的例子来说明如何引用反向关系。 假设您有以下两个模型&#xff1a; from django.db import modelsclass Author(models.Model):name models.CharField(…

Redis 从入门到精通【进阶篇】之高可用哨兵机制(Redis Sentinel)详解

文章目录 0.前言1. 原理详解1.1. 哨兵机制的组建1.1. 哨兵是如何知道从库的信息 1.2. 主库下线的判定1.3. 哨兵集群选举1.4. 故障的转移 2. 总结3. Redis从入门到精通系列文章4. Redis哨兵模式面试题4. 1. 什么是Redis的哨兵模式&#xff1f;4. 2. 哨兵模式的优点是什么&#x…

【redis】list类型命令简述

redis的list类型&#xff0c;可以存储双向链表作为value&#xff0c;key保留有head和tail指针可以指向双向链表的头和尾&#xff0c;因此可以直接从头或尾对list进行操作。 全部命令如下&#xff1a; 127.0.0.1:6379> help listBLMOVE source destination LEFT|RIGHT LEFT|…

CCF真题练习:202209-1如此编码

题目背景 某次测验后&#xff0c;顿顿老师在黑板上留下了一串数字 23333 便飘然而去。凝望着这个神秘数字&#xff0c;小 P 同学不禁陷入了沉思…… 题目描述 已知某次测验包含 n 道单项选择题&#xff0c;其中第 i 题&#xff08;1≤i≤n&#xff09;有 个选项&#xff0c;…

了解交换机接口的链路类型(access、trunk、hybrid)

上一个章节中讲到了vlan的作用及使用&#xff0c;这篇了解一下交换机接口的链路类型和什么情况下使用 vlan在数据包中是如何体现的&#xff0c;在上一篇的时候提到测试了一下&#xff0c;从PC1去访问PC4的时候&#xff0c;只从E0/0/2发送给了E0/0/3这是&#xff0c;因为两个接…

gogs的自定义配置

在 GOGS 下载并安装后&#xff0c;在程序目录下建立一个custom/conf/app.ini的配置文件&#xff0c;内容如下&#xff1a; APP_NAME Gogs # APP名字 RUN_USER git # 启动用户&#xff0c;设置后只能以此账号启动gogs RUN_MODE prod[database] DB_TYPE mysql HOST 1…

PHP特性之CTF中常见的PHP绕过

目录 一、关于md5()和sha1()的常见绕过 1、使用数组绕过 2、 使用特殊字符串绕过 二、strcmp绕过 三、switch绕过 四、intval绕过 一、关于md5()和sha1()的常见绕过 知识介绍&#xff1a; 1、对于php强比较和弱比较&#xff1a;md5()&#xff0c;sha1()函数无法处理数组…

使用3DS Max 创建未来派螺栓枪模型

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 步骤 1 创建一个框并将其转换为可编辑多边形&#xff08;右键单击>转换为&#xff1a;>转换为可编辑多边形&#xff09;&#xff0c;然后使用连接添加一系列边循环&#xff0c;如下图所示。 步骤 2 …

基于JavaSpringBoot+Vue+uniapp微信小程序实现鲜花商城购物系统

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

⚡【C语言趣味教程】(3) 浮点类型:单精度浮点数 | 双精度浮点型 | IEEE754 标准 | 介绍雷神之锤 III 源码中的平方根倒数速算法 | 浮点数类型的表达方式

&#x1f517; 《C语言趣味教程》&#x1f448; 猛戳订阅&#xff01;&#xff01;&#xff01; ​—— 热门专栏《维生素C语言》的重制版 —— &#x1f4ad; 写在前面&#xff1a;这是一套 C 语言趣味教学专栏&#xff0c;目前正在火热连载中&#xff0c;欢迎猛戳订阅&#…

文件IO_文件截断_ftruncate,truncate(附Linux-5.15.10内核源码分析)

目录 1.为什么需要文件截断&#xff1f; 2.truncate函数介绍 2.1 truncate函数 2.2 truncate函数内核源码分析 2.3 truncate函数使用示例 3.ftruncate函数介绍 3.1 ftruncate函数 3.2 ftruncate函数内核源码分析 3.3 ftruncate函数使用示例 3.4 ftruncate和文件偏移量…

进程间通信之共享内存

共享内存 1.共享内存的概念2.共享内存函数2.1 shmget函数2.2 shmat函数2.3 shmdt函数2.4 shmctl函数 3. 共享内存的使用 1.进程间通信的分类&#xff1a; &#xff08;1&#xff09;管道&#xff1a;1、匿名管道pipe;2、命名管道mkfifo &#xff08;2&#xff09;System V IPC&…

跨境电商中的安全利器与效率助推器

在如今全球互联网时代&#xff0c;跨境电商已成为全球贸易的重要组成部分。然而&#xff0c;对于从事跨境电商的企业和个人而言&#xff0c;面对诸多网络隐私与安全风险&#xff0c;如何确保在线操作的安全性和高效性成为了摆在他们面前的重要课题。本文将向您介绍隐擎Fox指纹浏…

从Spring 应用上下文获取 Bean

ApplicationContext 提供了获取所有已经成功注入 Spring IoC 容器的 Bean 名称的方法 getBeanDefinitionNames() 。然后我们可以借助于其 getBean(String name) 方法使用 Bean 名称获取特定的 Bean。 我们使用 CommandLineRunner 接口来打印一下结果。 1.1 获取所有的 Bean im…

手机APP智能硬件开发,蓝牙设备如何测试?

一、APP扫描设备 1、手机端蓝牙不同设置下是否能正常扫描&#xff1a;蓝牙打开、蓝牙关闭&#xff1b; 2、蓝牙设备被扫描到并出现在可连接设备列表的条件&#xff1a; 蓝牙设备名称与可连接的设备列表中的名称匹配、设备处于广播状态&#xff1b; 蓝牙设备与可连接的设备列…

【前端技巧】CSS常用知识碎片(九)

CSS常用知识碎片&#xff08;九&#xff09; mask-image属性 带有半透明的PNG图像的遮罩效果 .mask-image {mask: no-repeat center / contain;mask-image: url(bird.png); }SVG图形遮罩效果 .mask-image {mask-image: url("data:image/svgxml,%3Csvg viewBox0 0 3232…

mysql 字符 1024个字符限制 cast转为varchar 不限制字符长度 最大字符长度 group_concat长度限制

设置group_concat的最大长度然后再运行 SET SESSION group_concat_max_len102400;

【算法基础:数据结构】2.2 字典树/前缀树 Trie

文章目录 知识点cpp结构体模板 模板例题835. Trie字符串统计❤️❤️❤️❤️❤️&#xff08;重要&#xff01;模板&#xff01;&#xff09;143. 最大异或对&#x1f62d;&#x1f62d;&#x1f62d;&#x1f62d;&#x1f62d;&#xff08;Trie树的应用&#xff09; 相关题目…

C# MVC 多图片上传预览

一.效果图&#xff1a; 开发框架&#xff1a;MVC&#xff0c;Layui 列表主界面这里就不展示了&#xff0c;可以去看看这篇文章&#xff1a;Layui项目实战&#xff0c;这里讲的是“上传Banner”界面功能&#xff1a; 其中包括&#xff0c;多文件上传&#xff0c;预览&#xff0c…

vue进阶-消息的订阅与发布

&#x1f4d6;vue基础学习-组件 介绍了嵌套组件间父子组件通过 props 属性进行传参。子组件传递数据给父组件通过 $emit() 返回自定义事件&#xff0c;父组件调用自定义事件接收子组件返回参数。 &#x1f4d6;vue进阶-vue-route 介绍了路由组件传参&#xff0c;两种方式&…