Subversion 备忘清单

本备忘单总结了常用的 SVN 命令行指令,以供快速参考。

入门

Subversion 组件

名称 说明
svn 命令行程序
svnversion 工作副本的修订
svnlook 检查存储库
svnadmin 存储库管理
svndumpfilter 过滤存储库流
mod_dav_svn Apache 模块
svnserve SVN服务器(SVN协议)
svnsync 镜像仓库

添加文件或文件夹

$ svn add *
# 添加文件夹中的所有项目,然后递归(忽略版本目录)
$ svn add itemname
# 如果 itemname 是文件夹,
# 则所有子文件夹 并且文件也会被添加
$ svn add * --force
# 强制递归到版本化目录

将更改提交到存储库

$ svn commit "/path"
# 提交对文件或文件夹的更改
$ svn commit -m "Message" "/path"
# 提交消息“Message”
$ svn commit -N "/path"
# 提交对文件夹的更改而不递归

Subversion 协议

协议 说明
file:// 本地
http:// HTTP (Apache)
https:// HTTPS (SSL)
svn:// SVN (svnserve)
svn+ssh:// SVN over SSH

删除、复制和移动

$ svn delete "/path"
$ svn -m "Deleting" delete "/path"
# 删除并显示消息“正在删除”
$ svn copy "sourcepath" "targetpath"
# 将源复制到目标
$ svn move "sourcepath" "targetpath"
# 将源移动到目标

杂项命令 ($ svn ... )

命令 说明
$ svn resolve "/path" 解决冲突
$ svn cleanup "/path" 递归删除,锁并完成,操作
$ svn lock "/path" 锁定路径
$ svn unlock "/path" 解锁路径
$ svn cat "/path" 查看文件内容
$ svn status "/path" 获取路径状态

Subversion 帮助

$ svn help
$ svn help import
# 显示“导入”命令的帮助

恢复本地(未提交)更改

$ svn revert "/path/filename"
# 恢复对文件的更改
$ svn revert -R "/path/folder"
# 递归恢复对文件夹的更改

日志与责任

$ svn log "/path"
# 显示存储库中的日志消息
$ svn blame "/path"
#  显示路径的带有消息的提交

将本地文件夹添加到存储库

$ svn import folder "/path/to/repository"

物品和财产状态

命令 说明
' ' 无修改
A 添加
D 删除
M 修改的
R 已更换物品
C 冲突中
X 外部定义
I 被忽略
? 不在存储库中
! 物品缺失
~ 对象类型已更改

存储库管理

$ svnadmin create "/path/to/repository"
# 创建存储库
$ svnadmin setlog "path" -r 7 message.txt
# 第7版的更改日志消息
# message.txt内容的“路径”
$ svnadmin dump "repository" > filename
# 将存储库的内容转储到文件
$ svnadmin load "repository" < filename
# 将文件的内容加载到存储库

文件之间的差异

$ svn diff "/path/file"
# 查看“/path/file”中的更改
$ svn diff "/path/file@2" "/path/file@7"
# 比较修订版2和7中的文件
$ svn diff -r 2:7 "/path/folder"
# 比较修订版2和7中的所有文件

签出工作副本

$ svn checkout "/path/to/repository/folder"
# 创建“文件夹”的工作副本
$ svn checkout "/path" foldername
# 签出到新文件夹“foldername”

合并更改

$ svn merge -r 2:7 "item" "/path/file"
# 在修订2之间应用差异
# 和“item”到“/path/file”的7
$ svn merge "url1" "url2" "/path/file"
# 应用“url1”和
# “url2”到“/path/file”

特性命令($ svn ... )

命令 说明
$ svn proplist "/path" 列出属性
$ svn propset PROP VAL 设置属性“PROP”
$ svn "/path" 至值“VAL”
$ svn propget PROP "/path" 获取“PROP”的值
$ svn propedit PROP "/path" 编辑“PROP”
$ svn propdel PROP "/path" 删除“PROP”

参数快捷方式

参数 说明
-m "Message" --message
-q --quiet
-v --verbose
-r --revision
-c --change
-t --transaction
-R --recursive
-N --non-recursive

从存储库更新工作副本

$ svn update "/path"
$ svn update -r9 "/path"
# 更新至修订版9