本文字档还在编写中,内容可能随时更改,并且可能无法准确反映 Apache™ Subversion® 软件的任何已发布版本。将本页面设为书签或将其推荐给其他人可能不是明智之举。请访问 https://svnbook.subversion.org.cn/ 获取本书的稳定版本。

名称

svn status (stat, st) — 打印工作副本文件和目录的状态。

概要

svn status [PATH...]

描述

打印工作副本文件和目录的状态。不带参数时,只打印本地修改的项目(不访问版本库)。使用 --show-updates (-u) 选项,它会添加工作版本和服务器过时信息。使用 --verbose (-v) 选项,它会打印每个项目的完整版本信息。使用 --quiet (-q) 选项,它只会打印本地修改项目的概要信息。

输出中的前七列每列宽度为一个字符,每列提供有关工作副本项目不同方面的信息。

第一列表示项目是否被添加、删除或以其他方式更改

' '

没有修改。

'A'

项目已计划添加。

'D'

项目已计划删除。

'M'

项目已修改。

'R'

项目已在工作副本中替换。这意味着该文件已计划删除,然后一个同名的新文件已计划添加以取代它。

'C'

项目的内容(而不是属性)与从版本库接收的更新发生冲突。

'X'

项目存在于外部定义。

'I'

项目被忽略(例如,使用 svn:ignore 属性)。

'?'

项目不在版本控制之下。

'!'

项目丢失(例如,您在没有使用 svn 的情况下移动或删除了它)。这也表示目录不完整(检出或更新被中断)。

'~'

项目被版本化为一种类型的对象(文件、目录、链接),但已被另一种类型的对象替换。

第二列显示文件或目录属性的状态

' '

没有修改。

'M'

该项目的属性已修改。

'C'

该项目的属性与从版本库接收的属性更新发生冲突。

第三列仅在工作副本目录被锁定时才填充(参见 “有时您只需要清理”部分

' '

项目未锁定。

'L'

项目已锁定。

第四列仅在项目计划使用历史记录添加时才填充

' '

没有历史记录与提交一起计划。

'+'

历史记录与提交一起计划。

第五列仅在项目相对于其父级被切换时才填充(参见 “遍历分支”部分

' '

项目是其父目录的子级。

'S'

项目已切换。

第六列填充锁定信息

' '

当使用 --show-updates (-u) 选项时,表示文件未锁定。如果未使用 --show-updates (-u) 选项,则表示文件在此工作副本中未锁定。

'K'

文件在此工作副本中已锁定。

'O'

文件已由其他用户或在另一个工作副本中锁定。这仅在使用 --show-updates (-u) 选项时出现。

'T'

文件已在此工作副本中锁定,但锁定已被 窃取 且无效。该文件当前在版本库中已锁定。这仅在使用 --show-updates (-u) 选项时出现。

'B'

文件已在此工作副本中锁定,但锁定已被 破坏 且无效。该文件不再锁定。这仅在使用 --show-updates (-u) 选项时出现。

第七列仅在项目是树冲突的受害者时才填充

' '

项目不是树冲突的受害者。

'C'

项目是树冲突的受害者。

第八列始终为空。

过时信息显示在第九列(仅在传递 --show-updates (-u) 选项时)

' '

工作副本中的项目是最新的。

'*'

服务器上存在项目的较新版本。

其余字段宽度可变,并以空格分隔。如果传递了 --show-updates (-u) 或 --verbose (-v) 选项,则工作版本是下一个字段。

如果传递了 --verbose (-v) 选项,则接下来会显示最后提交的版本和最后提交的作者。

工作副本路径始终是最后一个字段,因此它可以包含空格。

选项

示例

这是找出您对工作副本进行了哪些更改的最简单方法

$ svn status wc
 M      wc/bar.c
A  +    wc/qax.c

如果您想找出工作副本中的哪些文件已过时,请传递 --show-updates (-u) 选项(这不会 更改 工作副本)。在这里您可以看到 wc/foo.c 自上次更新工作副本后已在版本库中更改

$ svn status -u wc
 M            965    wc/bar.c
        *     965    wc/foo.c
A  +          965    wc/qax.c
Status against revision:    981
[Note] 注意

--show-updates (-u) 在已过时项目(即,如果您稍后使用 svn update 将从版本库更新的项目)旁边放置星号。 --show-updates (-u) 不会 导致状态列表反映版本库中项目的版本(尽管您可以通过传递 --verbose (-v) 选项查看版本库中的版本号)。

您可以从 status 子命令中获得的最多的信息如下所示

$ svn status -u -v 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
Status against revision:   981

最后,您可以使用 --xml 选项以 XML 格式获取 svn status 输出

$ svn status --xml wc
<?xml version="1.0"?>
<status>
<target
   path="wc">
<entry
   path="qax.c">
<wc-status
   props="none"
   item="added"
   revision="0">
</wc-status>
</entry>
<entry
   path="bar.c">
<wc-status
   props="normal"
   item="modified"
   revision="965">
<commit
   revision="965">
<author>sally</author>
<date>2008-05-28T06:35:53.048870Z</date>
</commit>
</wc-status>
</entry>
</target>
</status>

有关更多 svn status 示例,请参见 “查看更改概述”部分.

TortoiseSVN 官方中文版 1.14.7 发布