以下是 SVN(Subversion)常用二级命令的详细说明及使用示例,按功能分类整理,结合应用场景和参数解析,便于快速掌握核心操作。
📁 一、基础操作命令
-
checkout (co)
功能:从版本库检出代码到本地工作副本。
语法:svn checkout <URL> [本地路径]
示例:svn co http://svn.example.com/project/trunk # 检出主干 svn co -r 202 http://svn.example.com/project/trunk mydir # 检出特定版本到mydir目录关键选项:
-r指定版本号 。 -
update (up)
功能:将本地工作副本更新至版本库最新状态。
语法:svn update [路径]
示例:svn up # 更新当前目录 svn up -r 305 # 回退到版本305注意:若提交时提示“过期”,需先更新解决冲突 。
-
commit (ci)
功能:提交本地修改到版本库。
语法:svn commit -m "提交日志" [路径]
示例:svn ci -m "修复用户登录Bug" src/auth.c # 提交指定文件 svn ci -m "更新配置文件" # 提交所有修改选项:
--no-unlock保留文件锁 。
📂 二、文件与目录管理
-
add
功能:将新文件/目录纳入版本控制。
语法:svn add <路径>
示例:svn add config.ini # 添加单个文件 svn add docs/ --depth=empty # 仅添加空目录(不包含内容)注意:需后续执行
commit生效 。 -
delete (del, rm)
功能:删除版本库或本地文件。
语法:svn delete <URL或本地路径>
示例:svn rm old_module.py # 删除本地文件并标记待提交 svn rm -m "移除冗余模块" http://svn.example.com/project/trunk/old_module.py # 直接删除版本库文件推荐流程:先本地删除再提交 。
-
mkdir
功能:创建纳入版本控制的目录。
语法:svn mkdir <本地路径> # 本地创建(需提交) svn mkdir <URL> -m "日志" # 直接在版本库创建示例:
svn mkdir new-feature # 本地创建目录 svn mkdir -m "创建docs目录" http://svn.example.com/project/trunk/docs
🔍 三、版本查看与比较
-
log
功能:查看提交历史。
语法:svn log [路径]
示例:svn log -l 5 # 显示最近5条日志 svn log -v src/main.c # 查看文件详细修改记录选项:
-v显示修改文件列表;--stop-on-copy显示分支起点 。 -
diff (di)
功能:比较差异。
语法:svn diff [-r 版本1:版本2] [路径]
示例:svn di # 比较当前所有修改 svn di -r 100:105 app.c # 对比版本100与105的差异 svn di -c 202 # 查看版本202的变更内容 -
blame (annotate, ann)
功能:逐行显示文件修改者和版本。
语法:svn blame <文件>
示例:svn ann -r 150:200 utils.py # 查看150到200版本间的修改记录
🌿 四、分支与标签管理
-
copy (cp)
功能:创建分支或标签。
语法:svn copy <源URL> <目标URL> -m "日志"
示例:# 创建分支 svn cp http://svn.example.com/project/trunk \ http://svn.example.com/project/branches/feat-login \ -m "创建登录功能分支" # 创建标签(标记发布版本) svn cp http://svn.example.com/project/trunk \ http://svn.example.com/project/tags/v1.0 \ -m "发布v1.0" -
merge
功能:合并分支或版本差异。
语法:svn merge -r <起始版本>:<结束版本> <源URL> [本地路径]
示例:# 将分支合并到当前主干 svn merge http://svn.example.com/project/branches/feat-login # 回滚版本(反向合并) svn merge -r 305:300 app.py # 将305到300的变更撤销关键点:合并后需解决冲突并提交 。
⚙️ 五、属性与配置管理
-
propset (pset, ps)
功能:设置文件属性(如忽略规则)。
语法:svn propset <属性名> <值> <路径>
示例:svn ps svn:ignore "*.log" logs/ # 忽略logs目录下所有.log文件 -
proplist (plist, pl)
功能:列出属性。
语法:svn proplist [路径]
示例:svn pl -v src/ # 显示src目录下所有属性及其值
🛠️ 六、冲突解决与维护
-
resolve
功能:标记冲突已解决。
语法:svn resolve <文件>
示例:svn resolve config.ini # 手动编辑冲突后执行注意:仅标记状态,不自动修改内容 。
-
cleanup
功能:修复工作副本锁问题。
语法:svn cleanup [路径]
示例:svn cleanup # 当操作中断导致副本锁定时使用
命令速查表
| 命令 | 功能简述 | 常用示例 |
|---|---|---|
svn status (st) |
查看工作副本状态 | svn st -u (显示更新提示) |
svn info |
显示版本库信息 | svn info (查看当前URL和版本) |
svn revert |
撤销本地修改 | svn revert file.c |
svn export |
导出干净代码(无.svn目录) | svn export http://svn.example.com/project |
svn switch (sw) |
切换工作副本指向的分支 | svn switch http://svn.example.com/project/branches/dev |
更多命令细节可通过
svn help <子命令>查看(如svn help merge)。
提示:
- 使用
-r指定版本号,支持HEAD(最新)、BASE(本地基线)等关键字 。 - 冲突解决流程:
update→ 手动修改 →resolve→commit。
浙公网安备 33010602011771号