### 名称 svn status ― 打印工作拷贝文件和目录的状态。 ### 概要 ~~~ svn status [PATH...] ~~~ ### 描述 打印工作拷贝文件和目录的状态。如果没有参数,只会打印本地修改的项目(不会访问版本库),使用`--show-updates`选项,会添加工作修订版本和服务器过期信息。使用`--verbose`会打印每个项目的完全修订版本信息。 输出的前五列都是一个字符宽,每一列给出了工作拷贝项目的每一方面的信息。 第一列指出一个项目的是添加、删除还是其它的修改。 ' ' 没有修改。 'A' 预定要添加的项目。 'D' 预定要删除的项目。 'M' 项目已经修改了。 'R' 项目在工作拷贝中已经被替换了。 'C' 项目与从版本库的更新冲突。 'X' 项目与外部定义相关。 'I' 项目被忽略(例如使用`svn:ignore`属性)。 '' 项目不在版本控制之下。 '!' 项目已经丢失(例如,你使用**svn**移动或者删除了它)。这也说明了一个目录不是完整的(一个检出或更新中断)。 '~' 项目作为一种对象(文件、目录或链接)纳入版本控制,但是已经被另一种对象替代。 第二列告诉一个文件或目录的属性的状态。 ' ' 没有修改。 'M' 这个项目的属性已经修改。 'C' 这个项目的属性与从版本库得到的更新有冲突。 第三列只在工作拷贝锁定时才会出现。 ' ' 项目没有锁定。 'L' 项目已经锁定。 第四列只在预定包含历史添加的项目出现。 ' ' 没有历史预定要提交。 '+' 历史预定要伴随提交。 第五列只在项目跳转到相对于它的父目录时出现(见[“转换工作拷贝”一节])。 ' ' 项目是它的父目录的孩子。 'S' 项目已经转换。 过期信息出现在第八列(只在使用`--show-updates`选项时出现)。 ' ' 这个项目在工作拷贝是最新的。 '*' 在服务器这个项目有了新的修订版本。 余下的字段是可变得宽度且使用空格分隔,如果使用`--show-updates`或`--verbose`选项,工作修订版本是下一个字段。 如果传递`--verbose`选项,最后提交的修订版本和最后的提交作者会在后面显示。 工作拷贝路径永远是最后一个字段,所以它可以包括空格。 ### 别名 stat, st ### 变化 无 ### 是否访问版本库 只有使用`--show-updates`时会访问 ### 选项 ~~~ --show-updates (-u) --verbose (-v) --non-recursive (-N) --quiet (-q) --no-ignore --username USER --password PASS --no-auth-cache --non-interactive --config-dir ~~~ ### 例子 这是查看你在工作拷贝所做的修改的最简单的方法。 ~~~ $ svn status wc M wc/bar.c A + wc/qax.c ~~~ 如果你希望找出工作拷贝哪些文件是最新的,使用`--show-updates`选项(这不会对工作拷贝有任何修改)。这里你会看到`wc/foo.c`在上次更新后有了修改: ~~~ $ svn status --show-updates wc M 965 wc/bar.c * 965 wc/foo.c A + 965 wc/qax.c Status against revision: 981 ~~~ ### 注意 `--show-updates`*只会*在过期的项目(如果你运行**svn update**,就会更新的项目)旁边安置一个星号。`--show-updates`不会导致状态列表反映项目的版本库版本。 最后,是你能从status子命令得到的所有信息: ~~~ $ svn status --show-updates --verbose wc M 965 938 sally wc/bar.c * 965 922 harry wc/foo.c A + 965 687 harry wc/qax.c 965 687 harry wc/zig.c Head revision: 981 ~~~ 关于**svn status**的更多例子可以见[“**svn status**”一节]。