环境准备
- 安装验证
打开终端(Windows:CMD/PowerShell;macOS/Linux:Terminal),输入:svn --version
若显示版本信息(如
svn, version 1.14.2
),则安装成功。
核心概念
- 仓库(Repository):中央存储所有版本数据的服务器(如
https://svn.example.com/project
)。 - 工作副本(Working Copy):本地从仓库检出的文件目录。
- 修订号(Revision):每次提交生成的唯一版本标识(如
r123
)。
常用命令详解
检出代码(Checkout)
首次获取仓库内容:
svn checkout https://svn.example.com/project/trunk --username yourname
checkout
可简写为co
- 系统会提示输入密码
更新工作副本(Update)
同步仓库最新修改到本地:
svn update
- 显示更新文件列表及当前修订号(如
Updated to revision 105
)
提交更改(Commit)
将本地修改上传到仓库:
svn commit -m "修复登录页面BUG"
-m
后必须填写提交日志(简明描述变更内容)
查看文件状态(Status)
检查工作副本的修改状态:
svn status
关键状态标识:
A
:新增文件M
:已修改文件- :未纳入版本控制
- :文件丢失
添加文件到版本控制
svn add newfile.txt # 添加单个文件 svn add *.html # 添加所有html文件
查看修改差异(Diff)
对比本地与仓库版本的差异:
svn diff index.html # 查看具体文件改动 svn diff -r 100:105 # 比较修订号100到105的差异
查看提交历史(Log)
svn log -v -l 5 # 显示最近5条详细日志
解决冲突
当更新时出现冲突:
- 冲突文件会生成
.mine
,.r旧版本
,.r新版本
副本 - 手动编辑文件解决冲突后执行:
svn resolve --accept working conflict_file.py svn commit -m "解决合并冲突"
高级操作
创建分支/标签
svn copy https://svn.example.com/project/trunk \ https://svn.example.com/project/branches/feat-new-login \ -m "创建登录功能分支"
切换工作副本路径
svn switch https://svn.example.com/project/branches/feat-new-login
合并分支
svn merge https://svn.example.com/project/branches/feat-new-login
最佳实践与注意事项
- 提交前必做:
- 执行
svn update
避免冲突 - 用
svn status
确认修改范围 - 用
svn diff
检查代码变更
- 执行
- 日志规范:
提交信息需清晰描述目的(如“新增用户注册接口”而非“修改文件”)。 - 敏感数据处理:
切勿提交配置文件中的密码、密钥(使用.svnignore
忽略文件)。 - 定期清理:
svn cleanup # 修复中断操作导致的工作副本锁定
故障处理
- 认证失败:删除缓存凭据重新输入:
rm ~/.subversion/auth/svn.simple/* # macOS/Linux del %APPDATA%\Subversion\auth\* # Windows
- 文件锁定:
svn unlock image.png
引用说明参考 Subversion 官方文档(svnbook.red-bean.com)及社区最佳实践,适用于 SVN 1.8+ 版本,命令行操作需结合具体项目路径调整示例中的URL。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6774.html