本手册是为 Subversion 1.4 版本编写的。如果您使用的是更新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并参阅与您的 Subversion 版本相符的手册版本。

名称

svn status — 打印工作副本文件和目录的状态。

语法

svn status [PATH...]

描述

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

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

第一列指示一个项目被添加、删除或以其他方式更改。

' '

没有修改。

'A'

项目已安排添加。

'D'

项目已安排删除。

'M'

项目已被修改。

'R'

项目已在您的工作副本中被替换。这意味着该文件已安排删除,然后一个具有相同名称的新文件被安排添加以替代它。

'C'

该项目的內容(与属性相反)与从版本库接收到的更新冲突。

'X'

项目存在是因为 externals 定义。

'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

更改

访问版本库

仅在使用 --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 的更多示例,请参见 名为“查看您更改的概述”的部分