SVN API客户端命令行工具,用于与SVN API服务器交互,管理SVN仓库和权限。
- 仓库管理: 创建、列出、删除SVN仓库
- 权限管理: 授权、撤销、查询权限,支持过期时间设置
- 服务器配置: 管理多个SVN服务器,支持别名和默认服务器
- 备份管理: 手动备份authz文件,查看备份状态,同步到数据库
- 交互模式: 缺少参数时自动进入向导模式
- 多格式输出: 支持表格、JSON、YAML格式输出
- 安全确认: 危险操作需要多重确认
git clone <repository-url>
cd svn-api-client
pip install -e .pip install svn-api-client# 添加服务器配置
svntool config add-server yellow http://svn01:8080 --desc "黄河项目SVN服务器"
# 设置默认服务器
svntool config set-default yellow
# 查看服务器配置
svntool config list-servers# 创建仓库
svntool repo create myproject --desc "我的项目"
# 列出所有仓库
svntool repo list
# 删除仓库(需要确认)
svntool repo delete myproject --confirm# 授权用户读写权限
svntool perm grant alice myproject --path /trunk --perm rw
# 授权组只读权限,设置过期时间
svntool perm grant developers myproject --group --expires 2024-12-31
# 查询权限
svntool perm query --repo myproject
svntool perm query --user alice
# 撤销权限
svntool perm revoke alice myproject --path /trunk
# 清除用户所有权限
svntool perm clear-user alice --confirm# 手动创建备份
svntool backup create
# 查看备份状态
svntool backup status
# 同步authz到数据库
svntool backup syncsvntool
├── repo # 仓库管理
│ ├── create # 创建仓库
│ ├── list # 列出仓库
│ ├── delete # 删除仓库
│ └── paths # 列出仓库路径
├── perm # 权限管理
│ ├── grant # 授权
│ ├── revoke # 撤销权限
│ ├── query # 查询权限
│ └── clear-user # 清除用户权限
├── backup # 备份管理
│ ├── create # 创建备份
│ ├── status # 备份状态
│ └── sync # 同步数据库
└── config # 配置管理
├── add-server # 添加服务器
├── remove-server # 删除服务器
├── list-servers # 列出服务器
└── set-default # 设置默认服务器
当缺少必要参数时,工具会自动进入交互模式:
# 不提供参数时进入向导
svntool repo create
svntool perm grant
svntool config add-server
# 或直接进入交互模式
svntool interactive配置文件位置:/etc/svn-api-client/config.yaml 或 ~/.svn-api-client/config.yaml
servers:
default: yellow
aliases:
yellow:
url: "http://svn01:8080"
description: "黄河项目SVN服务器"
blue:
url: "http://svn02:8080"
description: "蓝海项目SVN服务器"
client:
timeout: 30
retry_attempts: 3
output_format: "table"# 指定服务器执行命令
svntool repo list --server blue
svntool perm grant alice myproject --server http://svn03:8080
# 使用别名
svntool perm query --server yellow# 查询所有仓库的权限
svntool perm query
# 查询特定用户在所有仓库的权限
svntool perm query --user alice
# 显示包括过期权限
svntool perm query --show-expired# JSON格式输出
svntool repo list --format json
# YAML格式输出
svntool perm query --format yaml
# 表格格式(默认)
svntool config list-servers --format table工具提供详细的错误信息和解决建议:
- 网络连接错误时显示连接诊断信息
- API错误时显示状态码和详细消息
- 配置错误时提供修复建议
- 输入验证失败时显示正确格式
MIT License
欢迎提交Issue和Pull Request。
如有问题请联系 [your-email@example.com]