本手册旨在描述 Subversion 1.2。如果您正在运行较新版本的 Subversion,我们强烈建议您访问 https://svnbooks.subversion.org.cn/ 并查阅与您的 Subversion 版本相符的版本。

名称

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

概要

svn status [PATH...]

描述

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

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

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

' '

没有修改。

'A'

项目已安排添加。

'D'

项目已安排删除。

'M'

项目已修改。

'R'

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

'C'

项目的內容(而不是属性)与从仓库接收的更新冲突。

'X'

项目与外部定义相关。

'I'

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

'?'

项目未在版本控制之下。

'!'

项目丢失(例如,您移动或删除了它,但没有使用 svn)。这也表明目录不完整(检出或更新已中断)。

'~'

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

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

' '

没有修改。

'M'

此项目的属性已修改。

'C'

此项目的属性与从仓库接收的属性更新冲突。

第三列仅在工作副本目录被锁定时才会填充。(参见 名为“svn cleanup”的部分。)

' '

项目未锁定。

'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
--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 不会使状态列表反映仓库中项目的版本。

最后,您从 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”的部分

TortoiseSVN 官方中文版 1.14.7 发布