svn status

Posted on Posted in 1.svn

名称

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,这意味着文件在工作拷贝被锁定。

  • K

  • 文件锁定在工作拷贝。

  • O

  • 文件被另一个工作拷贝的另一个用户锁定,只有在使用--show-updates时显示。

  • T

  • 文件锁定在工作拷贝,但是锁定被“窃取”而不可用。文件当前锁定在版本库,只有在使用--show-updates时显示。

  • B

  • 文件锁定在工作拷贝,但是锁定被“破坏”而不可用。文件当前锁定在版本库,只有在使用--show-updates时显示。

过期信息出现在第七列(只在使用--show-updates选项时出现)。

  • ' '

  • 这个项目在工作拷贝是最新的。

  • '*'

  • 在服务器这个项目有了新的修订版本。

余下的字段是可变得宽度且使用空格分隔,如果使用--show-updates--verbose选项,工作修订版本是下一个字段。

如果传递--verbose选项,最后提交的修订版本和最后的提交作者会在后面显示。

工作拷贝路径永远是最后一个字段,所以它可以包括空格。

别名

stat, st

改变

无2

是否访问版本库

只有使用--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 DIR --ignore-externals

                     

例子

这是查看你在工作拷贝所做的修改的最简单的方法。

$ 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不会导致状态列表反映项目的版本库版本(尽管你可以通过--verbose选项查看版本库的修订版本号)。

最后,是你能从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的更多例子可以见“查看你的修改概况”一节