本备忘单总结了常用的 SVN 命令行指令,以供快速参考。
入门
Subversion 组件
名称 |
说明 |
svn |
命令行程序 |
svnversion |
工作副本的修订 |
svnlook |
检查存储库 |
svnadmin |
存储库管理 |
svndumpfilter |
过滤存储库流 |
mod_dav_svn |
Apache 模块 |
svnserve |
SVN服务器(SVN协议) |
svnsync |
镜像仓库 |
添加文件或文件夹
1 2 3 4 5 6 7
| $ svn add *
$ svn add itemname
$ svn add * --force
|
将更改提交到存储库
1 2 3 4 5 6
| $ 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 |
删除、复制和移动
1 2 3 4 5 6 7
| $ 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 帮助
1 2 3
| $ svn help $ svn help import # 显示“导入”命令的帮助
|
恢复本地(未提交)更改
1 2 3 4
| $ svn revert "/path/filename" # 恢复对文件的更改 $ svn revert -R "/path/folder" # 递归恢复对文件夹的更改
|
日志与责任
1 2 3 4
| $ svn log "/path" # 显示存储库中的日志消息 $ svn blame "/path" # 显示路径的带有消息的提交
|
将本地文件夹添加到存储库
1
| $ svn import folder "/path/to/repository"
|
物品和财产状态
命令 |
说明 |
‘ ‘ |
无修改 |
A |
添加 |
D |
删除 |
M |
修改的 |
R |
已更换物品 |
C |
冲突中 |
X |
外部定义 |
I |
被忽略 |
? |
不在存储库中 |
! |
物品缺失 |
~ |
对象类型已更改 |
存储库管理
1 2 3 4 5 6 7 8 9
| $ svnadmin create "/path/to/repository" # 创建存储库 $ svnadmin setlog "path" -r 7 message.txt # 第7版的更改日志消息 # message.txt内容的“路径” $ svnadmin dump "repository" > filename # 将存储库的内容转储到文件 $ svnadmin load "repository" < filename # 将文件的内容加载到存储库
|
文件之间的差异
1 2 3 4 5 6
| $ 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中的所有文件
|
签出工作副本
1 2 3 4
| $ svn checkout "/path/to/repository/folder" # 创建“文件夹”的工作副本 $ svn checkout "/path" foldername # 签出到新文件夹“foldername”
|
合并更改
1 2 3 4 5 6
| $ 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 |
从存储库更新工作副本
1 2 3
| $ svn update "/path" $ svn update -r9 "/path" # 更新至修订版9
|
另见