svn的web管理后台服务svnWebUI

背景

用户需要使用web管理页面管理svn,根据网上的资料了解到国产开源的管理后台有两个,一个是svnadmin,另一个是svnwebui。对比功能和部署方式的不同,最后选择svnwebui,原因是部署方便,只需要部署jar包和java环境即可,无需其它服务,而svnadmin需要部署php、数据库服务,所以我选择最方便的工具先试用。

系统环境

麒麟v10,X64
JDK 17
Svn 1.45.5

服务部署

项目地址:https://gitee.com/cym1102/svnWebUI/#svnwebui,当前版本1.9.0,项目地址里面有更详细的说明。

下载软件

wget -O svnWebUI.jar https://gitee.com/cym1102/svnWebUI/releases/download/1.9.0/svnWebUI-1.9.0.jar 

启动服务后自动重启svn服务,这个比较坑,需要做一些适配,在适配完成之前项目暂时不可用,这比较坑,官方文档也没有这个说明,所以启动服务前必须提前备份。生产环境部署该服务要提前发个通知。
1.因为项目的仓库地址默认为/home/svnWebUI,如果不指定路径,那么启动服务器后svn也会重启并指定路径为/home/svnWebUI/repo,这时候原有仓库就不可用了,后期需要复制原有仓库到priject.home指定path的repo这层目录里,比如我这里priject.home指定的是/home/svn,那么svn的仓库根路径就变成/home/svn/repo。
2.项目启动后原有项目的svnserver.conf的内容会重新生成,指定的passwd和authz两个文件的路径会变成…/…/passwd和…/…/authz,这时候用户将无权限访问仓库,需要在后台导入用户并按照原有策略赋权后用户才能正常访问仓库。

启动:
server.port:指定服务端口,后期用这个端口访问后台
priject.home:仓库目录

nohup java -jar -Dfile.encoding=UTF-8 svnWebUI.jar --server.port=6060 --priject.home=/home/svn >/dev/null &

启动后做一下适配,将原有仓库的目录负责到/home/svn/repo目录,之后就可以登录后台使用服务了

使用方法

  1. 登录
    地址:http://IP:6060
    账密:第一次登录需要设置管理员账号密码
  2. 系统配置
    都是默认的,svn只要正常会自动识别,状态是已启动就对了
  3. 添加仓库
    进入仓库管理
    添加仓库:新建仓库使用这个功能,支持中英文名称
    导入库:将原有仓库目录复制到/home/svn/repo,确定即可看到仓库
  4. 添加用户
    进入用户管理
    添加用户:新建用户使用这个功能,密码不能含有特殊字符
    导入用户:使用原有仓库的passwd导入
  5. 添加组
    进入小组管理
    添加小组:新建小区使用这个功能,支持中英文名称
    导入小组:导入原有仓库authz文件,但是我测试了没有生效,原因不详
  6. 赋权
    进入仓库管理
    全体授权:
    禁用:所有用户无访问该仓库的权限,需要访问仓库使用用户授权或小组授权
    只读:所有用户对该仓库有只读权限,这个优先级高于用户授权和小组授权,所以这里给只读后所有用户都会有只读权限
    读写:所有用户对该仓库有读写权限,这个优先级高于用户授权和小组授权,所以这里给只读后所有用户都会有读写权限
  7. 用户授权
    前置条件:先要对当前管理员账号添加所有权限,否则在授权时无法选择路径,只能选择根目录
    添加用户:勾选需要授权的用户,可选多个,然后选择路径,对不同的路径分配对应权限。权限分只读、读写、禁止。如果不需要细分权限,选择根目录即可。
    注意:如果全体授权里已分配权限,那么其优先级将高于用户权限,比如全部授权里面赋予了读写权限,用户授权里即使对某用户设置禁用也是无效的,该用户依然可以访问仓库。
  8. 小组授权
    前置条件:先要对当前管理员账号添加所有权限,否则在授权时无法选择路径,只能选择根目录
    添加小组:勾选需要授权的小组,可选多个,然后选择路径,对不同的路径分配对应权限。权限分只读、读写、禁止。如果不需要细分权限,选择根目录即可。
    注意:如果全体授权里已分配权限,那么其优先级将高于小组权限,比如全部授权里面赋予了读写权限,小组授权里即使对某小组设置禁用也是无效的,该小区内的用户依然可以访问仓库。

基础的功能先写道这里,后续会继续使用系统并完善文档。

写在最后

本系统应该是个人开发者做的,虽然目前有些功能还有缺失,比如批量授权等,但是核心功能经过测试已经很好的满足管理需要了,各位用户对系统有建议和意见可以发邮件给作者,强烈建议出一点点费用鼓励作者继续完善系统,在这里感谢作者的付出,祝svnWebUI越来越强大。

Read more

Cartographer 前端 Local SLAM 详解(2)

Cartographer 前端 Local SLAM 详解 1. 前端概述 1.1 Local SLAM 的职责 核心任务: * 实时位姿跟踪: 在 10-100Hz 的频率下估计机器人位姿 * 局部地图构建: 维护短期 Submaps (通常包含 45-90 次扫描) * 数据预处理: 滤波、降采样、异常值剔除 与后端的关系: 前端输出 → 后端输入 ├─ Node (位姿节点) ├─ Submap (子图) └─ Constraint (局部约束) 性能指标: * 延迟: < 100ms (从接收点云到输出位姿) * 精度: 局部漂移 < 1% 路径长度 * 鲁棒性: 处理传感器噪声、动态物体 1.

前端样式优化:从基础到高级的完整指南

前端样式优化:从基础到高级的完整指南

前端样式优化:从基础到高级的完整指南 引言 在现代前端开发中,样式优化不仅仅是让页面看起来更美观,更是提升用户体验、提高性能的关键因素。随着应用规模不断扩大,样式管理变得越来越复杂。本文将深入探讨前端样式优化的实用技巧,涵盖从基础实践到高级策略的全方位内容。 一、开发工具与基础优化 1.1 选择合适的CSS预处理器 // 使用Sass/Less的特性提高开发效率 $primary-color: #3a86ff; $spacing-unit: 8px; .button { padding: $spacing-unit $spacing-unit * 2; background-color: $primary-color; &:hover { background-color: darken($primary-color, 10%); } // 使用mixin减少重复代码 @include responsive(mobile) { padding: $spacing-unit; } } 1.2 使用CSS自定义属性(CSS变量) :root{--primary-colo

《Web 自动化测试入门:从概念到百度搜索实战全拆解》

《Web 自动化测试入门:从概念到百度搜索实战全拆解》

一、自动化的核心概念 1. 定义:通过自动方式替代人工操作完成任务,生活中常见案例(自动洒水机、自动洗手液、超市闸机)体现了 “减少人力消耗、提升效率 / 质量” 的特点。 2. 软件自动化测试的核心目的: * 用于回归测试:软件迭代新版本时,验证新增功能是否影响历史功能的正常运行。 3. 常见面试题解析: * 自动化测试不能完全取代人工测试:需人工编写脚本,且功能变更后需维护更新,可靠性未必优于人工。 * 自动化测试不能 “大幅度降低工作量”:仅能 “一定程度” 减少重复工作,需注意表述的严谨性。 二、自动化测试的分类 自动化是统称,包含多种类型,核心分类及说明如下: 分类说明接口自动化针对软件接口的测试,目的是验证接口的功能、性能、稳定性等。UI 自动化 针对软件界面的测试,包含: 1. 移动端自动化:通过模拟器在电脑上编写脚本,测试手机应用;稳定性较差(受设备、