当前位置: 首页 > news >正文

Linux-Ubuntu环境下搭建SVN服务器

Linux-Ubuntu环境下搭建SVN服务器

  • 一、背景
  • 二、前置工作
    • 2.1确定IP地址保持不变
    • 2.2关闭防火墙
  • 三、安装SVN服务器
  • 四、修改SVN服务器版本库目录
  • 五、调整SVN配置
    • 5.1查看需要修改的配置文件
    • 5.2修改svnserve.conf文件
    • 5.3修改passwd文件,添加账号和密码(windows中checkout时需要使用)
    • 5.4修改authz文件
  • 六、重启SVN服务
    • 6.1重启
    • 6.2查看SVN服务状态
    • 6.3杀死SVN进程命令(慎用)
  • 七、安装TortoiseSVN
  • 八、访问SVN服务器
  • 九、使用IDEA拉取SVN的代码
  • 十、SVN项目的提交
  • 感谢

一、背景

今天团队突然要求用SVN作为代码的同步工具,一时间很慌,入职的第一家公司是用的SVN,但是之前都是用Tortoise这款工具界面点选的,编译工具也是用的My Eclipse,现在一下切换了Idea工具和Git后,以前的知识忘掉了很多,自己搭建一个SVN服务器,更是想都没想过。不过越是有挑战的事情,我就更想尝试一下。那今天就试试吧。

二、前置工作

2.1确定IP地址保持不变

本次系统环境:Ubuntu20.04.6,因为公司用的Ubuntu,所以也是想尝试这个系统搭建。
首先确定IP,我不能让我的SVN服务器总是变地址,所以先做一下配置

cd /etc/netplan

然后

ls

如下:
在这里插入图片描述
然后修改这个文件,注意需要管理员权限,所以加上sudo

sudo vim 01-network-manager-all.yaml

修改内容如下:可以看到是yaml文件所以分号和空格都要对齐,很重要

 # Let NetworkManager manage all devices on this system
network:ethernets:ens33:dhcp4: falseaddresses: [IP地址/24]gateway4: 网关地址nameservers:search: [mydomain , otherdomain]addresses: [网关地址,114.114.114.114]version: 2renderer: NetworkManager

这里如果不知道网关地址,可以这样查看

nmcli dev show

最后执行如下命令生效

sudo netplan apply

之后重启系统

systemctl reboot

再执行命令

nmcli dev show

发现网络信息已经更改了

2.2关闭防火墙

接着关闭防火墙,NetworkManager,selinux;
首先在终端中输入

sudo ufw status

查看当前防火墙状态
在这里插入图片描述
可以看到目前防火墙是关闭状态。
如果防火墙是开启状态,可以在终端输入

sudo ufw disable

来关闭防火墙。

三、安装SVN服务器

利用以下命令查看自己的系统是否已经安装了svn:

svn

界面如下,说明没有安装SVN
在这里插入图片描述
界面如下说明安装过了
在这里插入图片描述

根据提示完成SVN的安装

sudo apt-get install subversion

这里输入Y
在这里插入图片描述
注意,输入的命令要加-get否则会像我一样
在这里插入图片描述
如果像我这样的报错,可以输入以下命令

sudo apt-get update

代码解释:

  • sudo:确保足够权限,以超级用户或管理员权限运行命令。
  • apt-get:软件包管理工具,管理软件包更新、安装、升级、删除。
  • update:通知apt-get 执行软件包列表更新操作。

下载完更新包界面如下:
在这里插入图片描述
再次执行

sudo apt-get install subversion

再输入Y即可
在这里插入图片描述
这样就是安装完毕了
在这里插入图片描述
安装完成之后
可以验证指令

svn help

如下:表示安装成功
在这里插入图片描述
如下命令可以查看svn的版本

svn --version

在这里插入图片描述

四、修改SVN服务器版本库目录

subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里。
因为/usr目录下用于存放普通用户的应用程序、库文件和文档,所以将SVN库存放在/usr下
创建版本库目录指令如下

cd usr

在这里插入图片描述
输入如下的指令:注意,这里需要sudo权限

sudo mkdir svn

可以看到svn目录创建出来了
在这里插入图片描述
进入到svn目录下中

cd /usr/svn

在这里插入图片描述
执行如下的指令:
其中heima-leadnews是我仓库的名称

sudo svnadmin create heima-leadnews

执行完之后,可以看到仓库下,初始化了一些文件
在这里插入图片描述

五、调整SVN配置

5.1查看需要修改的配置文件

进入conf目录,查看需要修改的配置文件

cd /usr/svn/heima-leadnews/conf

接着输入

ls

可以看到配置文件目录下,有这四个文件
在这里插入图片描述

文件名称作用
authz权限配置文件,控制读写权限
passwd账号密码配置文件
svnserve.confsvn服务器配置文件

5.2修改svnserve.conf文件

执行命令

sudo vim svnserve.conf

执行后,打开了配置文件
在这里插入图片描述
我们只需要放开如下注释即可:

[general]
anon-access = read 【控制非鉴权用户访问版本库的权限】
auth-access = write 【控制鉴权用户访问版本库的权限】
password-db = passwd 【指定用户名口令文件名,即访问时要输用户名和密码】
authz-db = authz
realm = /MyBackup/svn/MyBackups 【指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库】

具体如下
在这里插入图片描述
保存并退出

:wq

5.3修改passwd文件,添加账号和密码(windows中checkout时需要使用)

执行指令

sudo vim passwd

在这里插入图片描述
尾行加上账号和密码即可
在这里插入图片描述
保持并退出

:wq

5.4修改authz文件

执行指令

sudo vim authz

在这里插入图片描述
在根目录下设置用户读写权限(注意这里/根目录符号不要写反)
在这里插入图片描述
保持并退出

:wq

六、重启SVN服务

到此,配置已经全部完成,账号信息已经添加成功
更改svnserver.conf时需要重启SVN服务才生效,更改authz,passwd文件时则不需要重启服务。

6.1重启

重启命令如下:

sudo svnserve -d -r /usr/svn/

在这里插入图片描述

6.2查看SVN服务状态

查看SVN服务状态命令:

ps aux|grep svnserve

在这里插入图片描述

6.3杀死SVN进程命令(慎用)

sudo killall svnserve

至此,SVN服务器已配置完成

七、安装TortoiseSVN

这里使用工具TortoiseSVN-1.14.5
下载地址:
TortoiseSVN-1.14.5.29465-x64-svn-1.14.2
汉化地址:
汉化包

安装,没啥说的,就是选择磁盘的时候,可以放到指定盘
在这里插入图片描述
剩下一直Next和Install即可,最后问你是否立即重启,选择Yes会立即重启,选择No会稍后手动重启
在这里插入图片描述
紧接着安装中文包,直接点击下一步即可,勾选这里
在这里插入图片描述
单击鼠标右键,可以看到TortoiseSVN已经安装完毕
在这里插入图片描述

八、访问SVN服务器

直接选择本地的一个文件夹作为本地库,右键检出,输入地址
在这里插入图片描述
输入地址
在这里插入图片描述

结果发现报错了
在这里插入图片描述
原因很简单,因为重启后,虚拟机需要重新启动svn服务,执行指令

sudo svnserve -d -r /usr/svn/

那我这边重启后,用TortoiseSVN也报错了,原因是svnserve.conf文件第18行错误
在这里插入图片描述
看了一下,去掉注释的时候,没有去掉前面的空格
在这里插入图片描述

然后需要重启一下svn
查看进程PID

sudo netstat -ntpl

杀死相应的PID

sudo kill -9 2244

在这里插入图片描述
再重启SVN

sudo svnserve -d -r /usr/svn/

这时候让输入用户名和密码,就说明成功了
在这里插入图片描述
可以直接把本地的文件拖过去
在这里插入图片描述

九、使用IDEA拉取SVN的代码

新建项目的时候选择Get from Version Control
在这里插入图片描述
选择版本控制工具是svn
在这里插入图片描述
我这里显示了这个错误
在这里插入图片描述
原因是没有安装Command命令
在这里插入图片描述
所以需要重新安装TortoiseSVN
在这里插入图片描述
勾选Will be installed on local hard drive即可
在这里插入图片描述
点击刷新之后就可以使用了,这里选择的一定是src的上级目录
在这里插入图片描述
这里尽量选择第二,也就是有子目录的,方便后续管理
在这里插入图片描述
点击ok之后,就会对代码进行拉取了

十、SVN项目的提交

界面如下:
在这里插入图片描述

当我们对项目文件进行修改后,我们需要提交我们的工作内容
此时项目文件名是蓝色的,需要提交至 SVN
在这里插入图片描述
右边是现在的代码,左边是以前的代码
在这里插入图片描述
点击Commit即可
现在发现,我查询本地历史报错了
在这里插入图片描述
报错如下:
在这里插入图片描述
简单,我只要设置读和写都需要校验用户名和密码即可
更改
/usr/svn/Datastructure/conf/svnserve.conf 文件中anon-access设为none。
在这里插入图片描述
配置完后整体重启
在这里插入图片描述
再尝试一下,就ok了
在这里插入图片描述

感谢

感谢博主Wyn_的文章:
参考链接如下:SVN搭建ubuntu服务器过程

相关文章:

Linux-Ubuntu环境下搭建SVN服务器

Linux-Ubuntu环境下搭建SVN服务器 一、背景二、前置工作2.1确定IP地址保持不变2.2关闭防火墙 三、安装SVN服务器四、修改SVN服务器版本库目录五、调整SVN配置5.1查看需要修改的配置文件5.2修改svnserve.conf文件5.3修改passwd文件,添加账号和密码(window…...

python tkinter使用(四)

本篇文章主要讲下tkinter 的文本框相关. tkinter中用Entry来实现输入框,类似于android中的edittext. 具体的用法如下: 1:空白输入框 如下: name tk.Entry(window) name.pack()2: 设置输入框的默认文案 name tk.Entry(window) name.pack() name.insert(tk.END, "请…...

记录ruoyi-plus-vue部署的问题

ruoyi-vue-plus5.x 后端 ruoyi-vue-plus5.x 前端 前端本地启动命令 # 克隆项目 git clone https://gitee.com/JavaLionLi/plus-ui.git# 安装依赖 npm install --registryhttps://registry.npmmirror.com# 启动服务 npm run dev# 构建生产环境 yarn build:prod # 前端访问地址…...

如何在springboot项目中使用minio上传下载删除文件

引入maven依赖 <!-- minio --> <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.2.2</version> </dependency>申请 bucket | access_key | secret_key 项目中配置相关参数 mini…...

SSM个性化旅游管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 个性化旅游管理系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库 &#xff0c;系统主要采用B…...

4-Docker命令之docker version

1.docker version介绍 docker version命令是用于查看docker容器的版本信息 2.docker version用法 docker version [参数] [root@centos79 ~]# docker version --helpUsage: docker version [OPTIONS]Show the Docker version informationOptions:-f, --format string Fo…...

Redis高并发缓存架构

前言&#xff1a; 针对缓存我们并不陌生&#xff0c;而今天所讲的是使用redis作为缓存工具进行缓存数据。redis缓存是将数据保存在内存中的&#xff0c;而内存的珍贵性是不可否认的。所以在缓存之前&#xff0c;我们需要明确缓存的对象&#xff0c;是否有必要缓存&#xff0c;怎…...

谨防利用Redis未授权访问漏洞入侵服务器

说明&#xff1a; Redis是一个开源的&#xff0c;由C语言编写的高性能NoSQL数据库&#xff0c;因其高性能、可扩展、兼容性强&#xff0c;被各大小互联网公司或个人作为内存型存储组件使用。 但是其中有小部分公司或个人开发者&#xff0c;为了方便调试或忽略了安全风险&#…...

关于一些bug的解决1、el-input的输入无效2、搜索之后发现数据不对3、el多选框、单选框点击无用4、

el-input输入无效 原来的代码是 var test null 但是我发现不能输入任何值 反倒修改test的初始值为123是可以的 于是我确定绑定没问题 就是修改的问题 于是改成 var test ref&#xff08;&#xff09; v-model绑定的值改成test.value就可以了 因为ref是相应式的 可以通过输入…...

使用 JavaScript 进行 API 测试的综合教程

说明 API 测试是软件测试的一种形式&#xff0c;涉及直接测试 API 并作为集成测试的一部分&#xff0c;以确定它们是否满足功能、可靠性、性能和安全性的预期。 先决条件&#xff1a; JavaScript 基础知识。Node.js 安装在您的计算机上。如果没有&#xff0c;请在此处下载。npm…...

Vue 2.0源码分析-Virtual DOM

Virtual DOM 这个概念相信大部分人都不会陌生&#xff0c;它产生的前提是浏览器中的 DOM 是很“昂贵"的&#xff0c;为了更直观的感受&#xff0c;我们可以简单的把一个简单的 div 元素的属性都打印出来&#xff0c;如图所示&#xff1a; 可以看到&#xff0c;真正的 DOM …...

(HAL库版)freeRTOS移植STMF103

正点原子关于freeRTOS的教程是比较好的&#xff0c;可惜移植的是标准库&#xff0c;但是我学的是Hal库&#xff0c;因为开发速度更快&#xff0c;从最后那个修改SYSTEM文件夹的地方开始替换为下面的内容就可以了 5.修改Systick中断、SVC中断、PendSV中断 将SVC中断、P…...

vue2-axios

下载axios 开发版本&#xff1a;axios.js 生产版本&#xff1a;axios.min.js 搭建服务器&#xff1a;json-server npm i -g json-serverjson-server --watch db.json&#xff08;启动服务并读取文件&#xff0c;db.json文件目录下启动&#xff09; json-server --watch db.j…...

创建maven的web项目

&#xff08;一&#xff09;创建maven的web项目 Step1、创建一个普通的maven项目 &#xff08;1&#xff09;新建一个empty project&#xff0c;命名为SSM2。 点击项目名&#xff0c;右键new&#xff0c;选择Module&#xff0c;左侧选择“Maven archetype”&#xff0c;可以给…...

使用uniapp开发系统懒加载图片效果

1、创建一个Vue组件 在uniapp项目中&#xff0c;我们可以创建一个独立的Vue组件来实现懒加载图片效果。打开uniapp项目&#xff0c;进入components文件夹&#xff0c;创建一个名为"LazeImage"的组件。 2、编写组件模板 在"LazeImage"组件中&#xff0c;…...

导入PIL时报错

在导入PIL时,报以下错误: 查找原因 参考博客 Could not find a version that satisfies the requirement PIL (from versions: ) No matching distributi-CSDN博客,按照wheel后,安装PIL时,报如下的错误。 查找说是python版本与wheel文件版本不同,确认本机python版本 …...

MyBatis Generator 插件 详解自动生成代码

MyBatis Generator&#xff08;MBG&#xff09;是MyBatis和iBATIS的代码生成器。可以生成简单CRUD操作的XML配置文件、Mapper文件(DAO接口)、实体类。实际开发中能够有效减少程序员的工作量&#xff0c;甚至不用程序员手动写sql。 它将为所有版本的MyBatis以及版本2.2.0之后的i…...

SkyWalking全景解析:从原理到实现的分布式追踪之旅

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 SkyWalking全景解析&#xff1a;从原理到实现的分布式追踪之旅 前言第一&#xff1a;SkyWalking简介第二&#xff1a;实现原理概览第三&#xff1a;主键与架构第四&#xff1…...

新手如何买卖可转债,可转债投资基础入门

一、教程描述 什么是可转债&#xff1f;可转债是可转换债券的二次简称&#xff0c;原始全称是可转换公司债券&#xff0c;这是一种可以在特定时间、按特定条件&#xff0c;转换为普通股票的特殊企业债券&#xff0c;可转换债券兼具债权和股权的特征&#xff0c;其英文为conver…...

研习代码 day39 | 动态规划——完全背包的应用

一、爬楼梯&#xff08;进阶版&#xff09; 1.1 题目 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正整数。 输入描述 输入共一…...

在 Vivado HLS 导出 RTL 时遇到 “Unrecognized character” 错误

在 Vivado HLS 导出 RTL 时遇到 “Unrecognized character” 错误&#xff0c;通常是因为代码里混入了不可见的非法字符&#xff0c;或是工程路径不符合规范。问题一&#xff1a;代码中的非法/不可见字符这是最常见的原因&#xff0c;但排查的关键在于识别出肉眼看不见的字符。…...

614.4V锂电池完整设计方案:高压储能与动力系统工程级技术要求解析【浩博电池】

614.4V锂电池系统属于典型的高压直流动力平台&#xff0c;广泛应用于重型工程机械、电动矿卡、港口设备、军用特种车辆及高功率储能系统。该电压等级对电芯一致性、安全设计、BMS控制及高压绝缘提出了极高要求&#xff0c;必须采用系统级工程方案进行整体设计&#xff0c;而不是…...

ThreadPoolExecutor使用小问题

https://www.doubao.com/my-collection/43158096738596610?typeThread...

Docker边缘容器启动失败率骤降87%的秘密(边缘网络策略与cgroup v2深度调优实录)

第一章&#xff1a;Docker边缘容器启动失败率骤降87%的实践启示在某工业物联网边缘计算平台的实际部署中&#xff0c;Docker容器在资源受限的ARM64边缘节点上启动失败率曾高达32%&#xff0c;主要表现为OCI runtime create failed、no space left on device及context deadline …...

Blazor组件库选型生死局:MudBlazor vs AntDesign Blazor vs 新晋冠军FluentUI Blazor(2026 Q1真实项目压测对比)

第一章&#xff1a;Blazor组件库选型生死局&#xff1a;MudBlazor vs AntDesign Blazor vs 新晋冠军FluentUI Blazor&#xff08;2026 Q1真实项目压测对比&#xff09;在2026年Q1交付的中大型企业级Blazor WebAssembly应用中&#xff0c;我们对三款主流组件库进行了全链路压测—…...

全域数学:核素对称能与物质稳定性定量定理(投稿精简版)【乖乖数学】

全域数学&#xff1a;核素对称能与物质稳定性定量定理&#xff08;投稿精简版&#xff09;【乖乖数学】 作者&#xff1a;乖乖数学 时间&#xff1a;20260422...

别再乱删了!深入理解Adobe正版服务(AGSService)运行机制与安全移除指南

深入解析Adobe正版服务运行机制与安全处置方案 当你在深夜赶稿时突然弹出的红色警告窗口打断了创作流程&#xff0c;或是重要演示前跳出的正版验证提示打乱了节奏——这些由Adobe Genuine Software Integrity Service&#xff08;简称AGSService&#xff09;引发的突发状况&…...

如何用 childNodes 与 children 区分文本节点与元素子节点

childNodes返回所有子节点&#xff08;含文本、注释等&#xff09;&#xff0c;children仅返回元素节点&#xff1b;前者包含空白文本节点&#xff0c;后者自动过滤非元素内容&#xff0c;更简洁安全。childNodes 和 children 都是用来获取元素子节点的属性&#xff0c;但它们返…...

爱奇艺“艺人库”风波观察:与其情绪化宣泄 不如积极拥抱AI浪潮

雷递网 雷建平 4月22日爱奇艺日前宣布超百名艺人入驻AI平台纳逗Pro的艺人库&#xff0c;一时间网上卷起千层。 “爱奇艺”及“爱奇艺疯了”等话题词屡次登上微博热搜及细分话题榜首。其实&#xff0c;AI时代的来临&#xff0c;各行各业无不受其影响&#xff0c;何止影视产业。在…...

直播设备ping值延时监测工具:功能详解与使用指南

对于直播从业者、网络运维人员来说&#xff0c;实时监测网络状态是个重要需求。本文介绍一款专门用于监测网络延时的工具&#xff0c;包含核心功能解析和参数设置建议。工具能做什么一句话总结&#xff1a;同时监测多台网络设备的延时情况&#xff0c;当延时超过阈值时报警&…...