代码管理--svnadmin工具介绍

news2024/12/23 7:02:11

1、简介

  SVNAdmin2 是一款通过图形界面管理服务端SVN的web程序。正常情况下配置SVN仓库的人员权限需要登录到服务器手动修改 authz 和 passwd 两个文件,当仓库结构和人员权限上了规模后,手动管理就变的非常容易出错,本系统能够识别人员和权限并提供管理和拓展功能。SVNAdmin2 支持SVN协议检出、HTTP协议检出,并且支持两种协议之间互相切换,支持docker部署或源码部署。SVNAdmin2 支持进行LDAP的接入,进而达到使用原有的人员架构和分组规则的目的。SVNAdmin2 第一个版本(20年初)被开发用来个人管理SVN仓库使用,无意中开源后发现用户渐多,于是开始专门维护迭代。

2、Docker安装

  由于docker安装是一种比较好的安装方式,因此本文只介绍docker安装,建议大家都采用这种安装方式。在安装之前先安装docker环境

  1. 启动一个临时的容器用于复制配置文件出来
docker run -d --name svnadmintemp --privileged witersencom/svnadmin:2.5.3 /usr/sbin/init
  1. 把配置文件复制到本机的 /home/svnadmin 目录
cd /home/
docker cp svnadmintemp:/home/svnadmin ./
docker cp svnadmintemp:/etc/httpd/conf.d ./svnadmin/
docker cp svnadmintemp:/etc/sasl2 ./svnadmin/

  这条命令的意义如下:

  • 具体来说,命令cd /home/将当前工作目录更改为本地机器上的/home目录。
  • 命令docker cp svnadmintemp:/home/svnadmin ./将容器svnadmintemp中的/home/svnadmin目录及其所有子目录和文件复制到本地机器的当前工作目录中。
  • 命令docker cp svnadmintemp:/etc/httpd/conf.d ./svnadmin/将容器中的/etc/httpd/conf.d目录及其所有子目录和文件复制到本地机器上的/home/svnadmin/目录下的svnadmin/子目录中。
  • 类似地,命令docker cp svnadmintemp:/etc/sasl2 ./svnadmin/将容器中的/etc/sasl2目录及其所有子目录和文件复制到本地机器上的/home/svnadmin/目录下的svnadmin/子目录中。
  1. 删除掉临时容器
docker stop svnadmintemp && docker rm svnadmintemp
  1. 启动正式的容器
docker run -d -p 80:80 -p 3690:3690 \
-v /home/svnadmin/:/home/svnadmin/ \
-v /home/svnadmin/conf.d/:/etc/httpd/conf.d/ \
-v /home/svnadmin/sasl2/:/etc/sasl2/ \
--privileged \
--name svnadmin \
witersencom/svnadmin:2.5.3

  以下是该命令中的选项和参数的含义:

  • -d:在后台运行容器。
  • -p 80:80:将主机的 80 端口映射到容器的 80 端口,使得可以通过主机的 IP 地址访问容器中运行的 Web 应用。
  • -p 3690:3690:将主机的 3690 端口映射到容器的 3690 端口,使得可以通过主机的 IP 地址访问容器中运行的 SVN 服务。
  • -v /home/svnadmin/:/home/svnadmin/:将主机的 /home/svnadmin/ 目录挂载到容器的 /home/svnadmin/ 目录,以便容器中的应用程序可以读取和写入该目录中的文件。
  • -v /home/svnadmin/conf.d/:/etc/httpd/conf.d/:将主机的 /home/svnadmin/conf.d/ 目录挂载到容器的 /etc/httpd/conf.d/ 目录,以便容器中运行的 Apache HTTP 服务器可以读取并使用该目录中的配置文件。
  • -v /home/svnadmin/sasl2/:/etc/sasl2/:将主机的 /home/svnadmin/sasl2/ 目录挂载到容器的 /etc/sasl2/ 目录,以便容器中运行的 SASL 库可以读取并使用该目录中的配置文件。
  • –privileged:将容器设置为特权模式,以便容器内的进程可以访问主机的一些特权资源。
  • –name svnadmin:给容器指定一个名称 svnadmin,以便在后续的操作中使用该名称。
  • witersencom/svnadmin:2.5.3:要运行的 Docker 镜像的名称和版本号。
  1. 进入容器内进行文件授权
docker exec -it svnadmin bash
chown -R apache:apache /home/svnadmin
  1. 登录
      系统默认登录账号:admin,密码:admin

3、效果展示

  • 用户界面
    在这里插入图片描述
  • 管理员界面
    在这里插入图片描述

4、总结

  整体来说svnadmin还是一款比较好用的软件,有如下优点:

  • 支持多用户 ,管理员和用户独立分开;
  • 支持svn仓库定时备份功能;
  • 支持用户组功能;
  • 支持服务器信息展示;
  • 支持操作日志功能;

项目Github地址:SVNAdmin2项目Github地址

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

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

相关文章

【AWS入门】IAM基本应用-2023/3/4

目录IAM概述根用户和IAM用户参考IAM概述 IAM(Identity Access Management)是身份和访问管理服务,要访问AWS服务和资源,就要使用IAM进行身份验证和授权。当我们通过控制台,CLI,或API访问AWS服务时,都需要通…

p5.js map映射

theme: smartblue 本文正在参加「金石计划」 本文简介 带尬猴,我嗨德育处主任 p5.js 为开发者提供了很多有用的方法,这些方法实现起来可能不难,但却非常实用,能大大减少我们的开发时间。 本文将通过举例说明的方式来讲解 映射 map…

《计算机网络》期末复习笔记

文章目录一、一些英文名词的标签(方便记忆)二、OSI七层协议三、综合题3.0 知识点储备3.1 在Internet 网中,某计算机的IP 地址是11001010.01100000.00101100.01011000 ,请回答下列问题3.2 假定发送方要发送的数据为10000101。采用C…

【Spring 深入学习】AOP的前世今生之后续

AOP的前世今生之后续 1. 概述 上篇文章【Spring 深入学习】AOP的前世今生之代理模式我们讲述了代理模式。而我们今天的主人公AOP就是基于代理模式实现的,所以我们今天会简单学习下AOP 2. 什么是AOP 是面向切面编程,一般可以帮助我们在不修改现有代码的情…

Java中字符流(FileReader(read、close)、FileWriter(write、close)、字符(输入、输出)流原理解析)

1.创建对象: 2.读取数据 3.释放资源(关流) 如何使用重载的read()方法呢? FileWriter: 在前面我们指导,字节输出流和字符输出流的本质区别是,字节输出流一次只能操作一个字节,如果让…

QEMU启动ARM32 Linux内核

目录前言前置知识ARM Versatile Express开发板简介ARM处理器家族简介安装qemu-system-arm安装交叉编译工具交叉编译ARM32 Linux内核交叉编译ARM32 Busybox使用busybox制作initramfs使用QEMU启动ARM32 Linux内核模拟vexpress-a9开发板模拟vexpress-a15开发板参考前言 本文介绍采…

【数据库】数据库基础架构

数据库架构 数据库对于后端程序员来说是每天都需要打交道的系统,因此了解并掌握MySQL底层原理是必须的。 基础架构图 MySQL内部分为两层,一个是Server层,另一个是存储引擎层,而我们常用的就是MyISAM、InnoDB,主要负…

16、字符串生成器

目录 (1)append()方法 (2)insert(int offset, arg)方法 (3)delete(int start , int end)方法 创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“”可以达到…

Java【二叉搜索树和哈希表】详细图解 / 模拟实现 + 【Map和Set】常用方法介绍

文章目录前言一、二叉搜索树1、什么是二叉搜索树2、模拟实现二叉搜索树2.1, 查找2.2, 插入2.3, 删除3、性能分析二、模型三、哈希表1、什么是哈希表1.1, 什么是哈希冲突1.2, 避免, 解决哈希冲突1.2.1, 避免: 调节负载因子1.2.2, 解决1: 闭散列(了解)1.2.3, 解决2: 开散列/哈希桶…

Uipath Excel 自动化系列18-RefreshPivotTable(刷新透视表)

活动描述 RefreshPivotTable(刷新透视表):如果透视表的数据源发生变化,需使用刷新透视表活动,该活动需与Use Excel File 活动选择的 Excel 文件一起使用。 使用如下图: RefreshPivotTable(刷新透视表)属性 属性 作用 Display…

最近做到一道好题,特来和大家分享一下。

题目:299. 裁剪序列 - AcWing题库 分析: 题目给我们的数据范围是105;也就是说我们的时间复杂度要控制到O(nlog2n)才可以。假设每一个元素都可以作为一个区间,那么可以有 Cn1……Cnn 2n-1种划分方法,n达到了105,很显然就超时。所以…

MASK-RCNN网络介绍

目录前言一.MASK R-CNN网络1.1.RoIPool和RoIAlign1.2.MASK分支二.损失函数三.Mask分支预测前言 在介绍MASK R-CNN之前,建议先看下FPN网络,Faster-CNN和FCN的介绍:下面附上链接: R-CNN、Fast RCNN和Faster RCNN网络介绍FCN网络介绍…

调试射频TX和rx实验工程出现的问题与反思

1.今天用ADS仿真 发现 加上SMA 插损就到了4db,但是直接用传输线就在1db以内 这个问题我目前想到的排查思路是换成IPEX, 换成IPEX插损就变成2db 拿最新的7626去看 看到上面是SMA-3G 小针 还是结合参考的demo PCB来看 2.用射频的ipex测试LNA 发现校准…

Leetcode. 160相交链表

文章目录指针解法指针解法 核心思路 : 先 分别求两个链表的长度 然后长的链表先走 差距步(长-短) 最后长链表和短链表同时走 ,第一地址相同的就是交点 ,注意一定是地址相同 不可能出现上图这种情况 ,因为C1…

开放平台订单接口

custom-自定义API操作 ​ ​​注册开通​​ taobao.custom 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secret String 是 调用密钥 api_name String 是 API接口名称(包括在请求地址中&a…

【JavaSE专栏11】Java的 if 条件语句

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

如何修改Win11上的默认程序?

在Win10之前,更改特定文件格式的默认程序很简单,但在Win11发布之后,很多用户都不清楚关于Win11的修改默认程序的操作步骤,接下来我们就一起来看看吧,希望可以帮助到大家。 步骤如下: 一、如何更改Windows 1…

第十四届蓝桥杯三月真题刷题训练——第 8 天

目录 第 1 题:分数 题目描述 运行限制 代码: 第 2 题:回文日期 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码: 第 3 题:迷宫 代码: 第 1 题:分数 题目描述 本题为填空题…

自动写代码?别闹了!

大家好,我是良许。 这几天,GitHub 上有个很火的插件在抖音刷屏了——Copilot。 这个神器有啥用呢?简单来讲,它就是一款由人工智能打造的编程辅助工具。 我们来看看它有啥用。 首先就是代码补全功能,你只要给出函数…

C51---蓝牙模块---连接软件---控制LED灯

1.器件:C51、HC-08蓝牙模块、Ty-C数据线、杜邦线 2.软件:HC蓝牙助手 3.接线:VCC-VCC、GND-GND、RXD-TXD、TXD-RXD 4.烧写:STC-ISP串口助手 5.代码: #include "reg52.h" #include "intrins.h" …