ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

svn-tool

Subversion (SVN) 代码版本控制工具。使用 svn CLI 进行检入、检出、更新、提交、查看日志等操作。当用户需要与 SVN 仓库交互时触发此技能。

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/bjbook/svn-tool
Or

SVN Tool - Subversion 版本控制技能

概述

提供完整的 Subversion (SVN) 版本控制功能,包括:

  • 仓库操作(checkout, update, commit)
  • 状态查看(status, log, info)
  • 分支管理(switch, copy, move)
  • 差异比较(diff)
  • 冲突解决

触发场景

  1. 用户要求"提交代码到 SVN"
  2. 用户需要"更新本地工作副本"
  3. 用户想"查看 SVN 提交历史"
  4. 用户询问"SVN 仓库状态"
  5. 用户需要"检出新的 SVN 项目"
  6. 用户要求"比较文件差异"

前置条件

使用前需确保:

  • 已安装 svn CLI 工具(Subversion)
  • 已配置 SVN 认证信息(可通过 --username/--password 或密钥环)
  • 工作目录包含有效的 SVN 工作副本

检查 SVN 是否可用:

svn --version

核心功能

1. 仓库检出 (Checkout)

从 SVN 仓库检出代码到本地:

svn checkout <repository-url> [local-path]
svn co https://example.com/svn/project/trunk my-project

常用选项:

  • --depth empty/folders/immediates/infinity:控制检出深度
  • --non-interactive:非交互模式
  • --trust-server-cert:信任服务器证书

2. 更新工作副本 (Update)

同步最新代码:

svn update
svn up
svn up --revision 1234  # 更新到特定版本
svn up --merge  # 自动合并冲突

3. 提交更改 (Commit)

将本地更改提交到仓库:

svn commit -m "提交消息"
svn ci -m "修复了登录页面的 bug"
svn ci --revprop -r HEAD -m "修改最后一条提交信息"

提示:

  • 提交前建议先执行 svn status 查看变更
  • 使用 -F file.txt 从文件读取提交信息
  • 支持 --with-revprop 添加自定义属性

4. 查看状态 (Status)

检查工作副本的变更状态:

svn status
svn st
svn status --verbose  # 详细模式
svn status --show-updates  # 显示需要更新的文件
svn status --no-ignore  # 显示忽略的文件

状态代码说明:

  • (空格):未变更
  • M:内容已修改
  • A:已添加
  • D:已删除
  • R:已替换
  • C:冲突
  • ?:未跟踪的文件

5. 查看日志 (Log)

查看提交历史:

svn log
svn log -r HEAD:1  # 反向显示
svn log -r 1000:1100  # 指定版本范围
svn log --limit 10  # 限制显示数量
svn log --verbose -r 1234  # 显示该版本的变更文件
svn log --search keyword  # 搜索提交信息

6. 添加文件 (Add)

将新文件添加到版本控制:

svn add filename.txt
svn add --force new-folder/  # 递归添加
svn add *.js  # 通配符添加

7. 删除文件 (Delete)

从版本控制中移除文件:

svn delete filename.txt
svn del folder/  # 删除文件夹
svn delete --keep-local filename.txt  # 保留本地文件

8. 复制/移动 (Copy/Move)

在仓库内复制或移动文件:

svn copy src/file.txt dest/file.txt -m "复制文件"
svn mv old-name.txt new-name.txt -m "重命名文件"
svn cp ^/trunk/feature ^/branches/feature-v2 -m "创建分支"

9. 差异比较 (Diff)

查看文件变更内容:

svn diff
svn diff filename.txt
svn diff -r 1000:1001  # 比较两个版本
svn diff --summarize  # 仅显示变更列表
svn diff -x -w  # 忽略空白字符

10. 解决冲突 (Resolve)

处理合并冲突:

svn resolve --accept working filename.txt  # 使用本地版本
svn resolve --accept theirs filename.txt   # 使用仓库版本
svn resolve --accept mine-full filename.txt  # 完整使用本地版本
svn resolve --accept theirs-full filename.txt  # 完整使用仓库版本
svn resolved filename.txt  # 标记冲突已解决

11. 切换分支 (Switch)

切换到不同的分支或标签:

svn switch ^/branches/feature-x
svn switch --relocate new-repo-url  # 重新定位仓库 URL

12. 信息显示 (Info)

查看工作副本或文件的详细信息:

svn info
svn info filename.txt
svn info --show-item revision  # 仅显示版本号
svn info --show-item url  # 仅显示 URL

13. 还原文件 (Revert)

撤销本地未提交的更改:

svn revert filename.txt
svn revert --recursive .  # 还原所有更改
svn revert -r HEAD filename.txt  # 还原到最新版本

14. 清理工作副本 (Cleanup)

修复工作副本锁或中断的操作:

Metadata

Author@bjbook
Stars4473
Views0
Updated2026-05-01
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-bjbook-svn-tool": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.