Svn st 状态解析

SVN状态表

svn st –help

status (stat, st): 显示工作副本中目录与文件的状态。
用法: status [PATH…]

未指定参数时,只显示本地修改的条目(没有网络访问)。
使用 -q 时,只显示本地修改条目的摘要信息。
使用 -u 时,增加工作版本和服务器上版本过期信息。
使用 -v 时,显示每个条目的完整版本信息。

输出的前七栏各占一个字符宽度:
第一栏: 表示一个项目是增加、删除,还是修改
“ ” 无修改
“A” 增加
“C” 冲突
“D” 删除
“I” 忽略
“M” 改变
“R” 替换
“X” 未纳入版本控制的目录,被外部引用的目录所创建
“?” 未纳入版本控制
“!” 该项目已遗失(被非 svn 命令删除)或不完整
“~” 版本控制下的项目与其它类型的项目重名

1
2
3
4
 "G" 与 "U"的区别:
举例:甲乙同时从版本库里面checkout出来相同的版本 A的X文件
此时,甲没有修改X,乙修改并提交了X,那么如果甲做Update,那么X的文件状态就是U [update] 更新
相反,如果甲对X进行了修改,乙进行了修改且提交,此时甲做Update,那么X文件的状态就是G [merge合并]

——将甲本地修改的版本和乙修改提交的版本进行合并

第二栏: 显示目录或文件的属性状态
“ ” 无修改
“C” 冲突
“M” 改变
第三栏: 工作副本目录是否被锁定
“ ” 未锁定
“L” 锁定
第四栏: 已调度的提交是否包含副本历史
“ ” 没有历史
“+” 包含历史
第五栏: 该条目相对其父目录是否已切换,或者是外部引用的文件
“ ” 正常
“S” 已切换
“X” 被外部引用创建的文件
第六栏: 版本库锁定标记
(没有 -u)
“ ” 没有锁定标记
“K” 存在锁定标记
(使用 -u)
“ ” 没有在版本库中锁定,没有锁定标记
“K” 在版本库中被锁定,存在锁定标记
“O” 在版本库中被锁定,锁定标记在一些其他工作副本中
“T” 在版本库中被锁定,存在锁定标记但已被窃取
“B” 没有在版本库中被锁定,存在锁定标记但已被破坏
第七栏: 项目冲突标记
“ ” 正常
“C” 树冲突
如果项目包含于树冲突之中,在项目状态行后会附加行,说明冲突的种类。

是否过期的信息出现的位置是第九栏(与 -u 并用时):
“*” 服务器上有更新版本
“ ” 工作副本是最新版的

剩余的栏位皆为变动宽度,并以空白隔开:
工作版本号(使用 -u 或 -v 时)
最后提交的版本与最后提交的作者(使用 -v 时)
工作副本路径总是最后一栏,所以它可以包含空白字符。

范例输出:
svn status wc
M wc/bar.c
A + wc/qax.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
svn status -u wc
M 965 wc/bar.c
* 965 wc/foo.c
A + 965 wc/qax.c
Status against revision: 981

svn status --show-updates --verbose wc
M 965 938 kfogel wc/bar.c
* 965 922 sussman wc/foo.c
A + 965 687 joe wc/qax.c
965 687 joe wc/zig.c
Status against revision: 981

svn status
M wc/bar.c
! C wc/qaz.c
> local missing, incoming edit upon update
D wc/qax.c

有效选项:
-u [–show-updates] : 显示更新信息
-v [–verbose] : 打印附加信息
-N [–non-recursive] : 过时;尝试 –depth=files 或 –depth=immediates
–depth ARG : 受深度参数 ARG(“empty”,“files”,“immediates”,或“infinity”) 约束的操作
-q [–quiet] : 不打印信息,或只打印概要信息
–no-ignore : 忽略默认值和 svn:ignore 属性
–incremental : 给予适合串联的输出
–xml : 输出为 XML
–ignore-externals : 忽略外部项目
–changelist ARG : 只能对修改列表 ARG 成员操作
[aliases: –cl]

全局选项:
–username ARG : 指定用户名称 ARG
–password ARG : 指定密码 ARG
–no-auth-cache : 不要缓存用户认证令牌
–non-interactive : 不要交互提示
–trust-server-cert : 不提示的接受未知的 SSL 服务器证书(只用于选项 “–non-interactive”)
–config-dir ARG : 从目录 ARG 读取用户配置文件
–config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf