Linux Shell 实现一键部署subversion

news/2024/11/13 3:45:37/

subversion

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

TortoiseSVN 

TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。

Subversion目录说明 

  • /var/svn/project/
目录说明
db存放所有的版本控制数据文件。
hooks放置hook脚本文件。
locks用来追踪存取文件库的客户端。
format一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。
confSVN版本库的配置文件(版本库的访问账号、权限等)。
/etc/sysconfig/svnserve

OPTIONS="-r /Data/Svn"   指定svn根目录,如果不是此命令更改,是默认不需要更改

创建一键自动化部署subversion

  • /var/svn #存储库根目录
  • /var/svn/project #创建版本库
  • /var/svn/project/trunk #创建和使用一个仓库,最终的软件上传的目录
  • /var/svn/project/conf/svnserve.conf #SVN业务配置
  • /var/svn/project/conf/passwd #设置存储库的用户名和密码
  • 用户名密码,只允许test01,test02用户访问project全局目录下所有文件的增删改查权限,登录,test03只读project下的trunk目录文件,不允许创建删除操作
test01/test@123
test02/test@123
test03/test@123
  •  /var/svn/project/conf/authz   #设置组和用户,允许开发者组在SVN文档-root上读写,允许读取fedora用户的[trunk]文件夹
  • /etc/httpd/conf.d/subversion.conf # 设置访问权限
  • /var/svn/.svnpasswd  #配置HTTP登录用户
vim /Install_svn.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/05/09svn_check=/usr/share/doc/subversioninstall_svn (){
if [ ! -d ${svn_check} ];then
echo "install svn"
if [ $? -eq 0 ];then yum install -y httpd mod_dav_svn subversionconfig_svnecho -e "\033[32mThe svn Install Sussess...\033[0m" elseecho -e "\033[33mThe svn Install Failed...\033[0m" exit 1fielseecho -e "\033[31mThe svn Install already...\033[0m"
fi
}config_svn (){#Create the repository root
mkdir -p /var/svn#Starting the svn
systemctl enable --now svnserve#Command to create a version library
mkdir -p /var/svn/project
svnadmin create /var/svn/project#Create a repository
svn mkdir file:///var/svn/project/trunk -m "create"#Delete the default configurations of the svn
rm -rf /var/svn/project/conf/svnserve.conf
rm -rf /var/svn/project/conf/passwd
rm -rf /var/svn/project/conf/authz#Modify the SVN service configuration
cat >>/var/svn/project/conf/svnserve.conf<<EOF
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
EOF#Set the username and password for the repository
cat >>/var/svn/project/conf/passwd<<EOF
[users]
test01 = test@123
test02 = test@123
test03 = test@123
EOF#Set groups and users,
#allow read/write on SVN document-root for developer group,
#allow read on [trunk] folder for fedora user
cat >>/var/svn/project/conf/authz<<EOF
[groups]
developer = test01,test02[/]
@developer = rw[/trunk]
test03 = r
EOF#set access permission
cat >>/etc/httpd/conf.d/subversion.conf<<EOF
# create new
<Location /project>DAV svnAuthType BasicAuthName "DAV SVN"AuthUserFile /var/svn/.svnpasswdRequire valid-userSVNPath /var/svn/project
</Location> 
EOF#config http login user
htpasswd -cb /var/svn/.svnpasswd test01 test@123
chown -R apache. /var/svn/project
systemctl restart httpd
systemctl enable --now httpd#Firewall port configuration
firewall-cmd --add-service=svn --permanent && firewall-cmd --reload
firewall-cmd --zone=public --add-port=80/tcp --permanent && firewall-cmd --reload
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0echo "svn version check"
svnserve --version | grep ", version" | awk '{print $3}'
}main (){
install_svn
}main

执行一键安装

sh /Install_svn.sh

Windows 客户连接svn

  • TortoiseSVN download
  • TortoiseSVN zh-cn语言包
  • svn://192.168.12.241/project
  • 用户名密码,只允许test01,test02用户访问project全局目录下所有文件的增删改查权限,登录,test03只读project下的trunk目录文件,不允许创建删除操作

 连接到库

上传容易文件到trunk 目录 

提交上传文件到svn 服务器

选择需要上传到svn服务器的文件

文件上传完成

http访问svn

  • 192.168.12.241/project/
  • test01/test@123


http://www.ppmy.cn/news/64011.html

相关文章

基于结构化跨模态表示一致性的临床辅助结直肠息肉识别

文章目录 Toward Clinically Assisted Colorectal Polyp Recognition via Structured Cross-Modal Representation Consistency摘要本文方法Shared Transformer BlockCross-Modal Global AlignmentSpatial Attention Module 实验结果 Toward Clinically Assisted Colorectal Po…

systemverilog 1. 内建数据类型logic

Verilog 有两种基本数据类型,reg 和wire ,都是4值逻辑 0 1 x z,默认值是x。 reg[7:0] m 为无符号 Integer 为有符号32位 time为64位无符号 real为浮点数 systemverilog新引进了logic,logic既可以作为变量(reg功能),也可以作为线网功能(…

前端优化-css

1.css盒子模型 标准盒子模型&#xff0c;IE盒子模型 标准盒子模型&#xff1a;margin-border-padding-content IE盒子模型&#xff1a;margin-content(border-padding-content) 如何转换&#xff1a; box - sizing: border - box; // IE盒子模型 box - sizing: content - …

【Spring篇】Spring整合

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 目录 一、Spring整合 1.Spring整合Mybatis思路分析 1.环境准备 2.整合思路分析 2.Spring整合Mybatis 3.Spring整合Junit 1.环境准备 2.整合Junit步骤 二、图书推荐 1.《元宇宙Ⅱ&#xff1a;图…

JavaScript介绍

1.JavaScript是什么&#xff1f; 2.JavaScript书写位置&#xff1f; 3.JavaScript注释&#xff1f; 4.JavaScript结束符&#xff1f; 5.JavaScript输入和输出语法&#xff1f; 6.JavaScript字面量&#xff1f; JavaScript学习权威网站&#xff1a;JavaScript | MDN (mozi…

2017年上半年软件设计师下午试题

试题四 阅读下列说明和 C 代码&#xff0c;回答问题 1 至问题 3&#xff0c;将解答写在答题纸的对应栏内。 【说明】 假币问题&#xff1a;有 n 枚硬币&#xff0c;其中有一枚是假币&#xff0c;己知假币的重量较轻。现只有一个天平&#xff0c;要求用尽量少的比较次数找出这枚…

纯比例控制为什么会存在稳态误差,用纯增益系统举例

warning: 本文仅为个人思考&#xff0c;非常不严谨甚至可能会出现严重错误&#xff0c;请读者仔细甄别&#xff0c;若本文真的存在严重错误&#xff0c;恳请评论区纠正&#xff0c;我看到将会考虑修改或者删除文章 纯比例控制存在稳态误差是由其本质&#xff08;控制逻辑&#…

【C++复习2】C++编译器的工作原理

如果你是一名newbird的话&#xff0c;建议观看如下视频加深你的理解&#xff0c;再看如下内容&#xff1a; https://www.bilibili.com/video/BV1N24y1B7nQ?p7 The cherno会额外告诉你如何将目标文件转换成汇编代码&#xff0c;CPU执行指令的过程以及编译器如何通过删除冗余变…