本手册旨在描述 Subversion 1.2。如果您正在运行较新版本的 Subversion,我们强烈建议您访问 https://svnbooks.subversion.org.cn/ 并查阅与您的 Subversion 版本相符的版本。
svn status — 打印工作副本文件和目录的状态。
打印工作副本文件和目录的状态。没有参数时,它只打印本地修改的项目(不访问仓库)。使用 --show-updates
,添加工作版本和服务器过期信息。使用 --verbose
,打印每个项目的完整版本信息。
输出中的前六列,每列都只有一列宽,每列都提供有关工作副本项目的不同方面的信息。
第一列指示项目已添加、删除或以其他方式更改。
没有修改。
项目已安排添加。
项目已安排删除。
项目已修改。
项目已在您的工作副本中替换。这意味着该文件已安排删除,然后一个同名的新文件已安排添加。
项目的內容(而不是属性)与从仓库接收的更新冲突。
项目与外部定义相关。
项目正在被忽略(例如,使用 svn:ignore
属性)。
项目未在版本控制之下。
项目丢失(例如,您移动或删除了它,但没有使用 svn)。这也表明目录不完整(检出或更新已中断)。
项目被版本控制为一种类型的对象(文件、目录、链接),但已被不同类型的对象替换。
第二列显示文件或目录属性的状态。
没有修改。
此项目的属性已修改。
此项目的属性与从仓库接收的属性更新冲突。
第三列仅在工作副本目录被锁定时才会填充。(参见 名为“svn cleanup”的部分。)
项目未锁定。
项目已锁定。
第四列仅在项目已安排添加历史记录时才会填充。
提交时未安排历史记录。
提交时安排历史记录。
第五列仅在项目相对于其父级被切换时才会填充(参见 名为“切换工作副本”的部分)。
项目是其父目录的子目录。
项目已切换。
第六列填充了锁定信息。
当使用 --show-updates
时,文件未锁定。如果未使用 --show-updates
,则这仅仅意味着该文件在此工作副本中未锁定。
文件在此工作副本中已锁定。
文件已由其他用户或在其他工作副本中锁定。这仅在使用 --show-updates
时出现。
文件已在此工作副本中锁定,但锁定已被“窃取”并且无效。文件当前已在仓库中锁定。这仅在使用 --show-updates
时出现。
文件已在此工作副本中锁定,但锁定已被“破坏”并且无效。文件不再锁定。这仅在使用 --show-updates
时出现。
过期信息出现在第七列(仅在您传递 --show-updates
开关时)。
您的工作副本中的项目是最新的。
服务器上存在项目的更新版本。
剩余字段是可变宽度的,并用空格分隔。如果传递了 --show-updates
或 --verbose
开关,则工作版本是下一个字段。
如果传递了 --verbose
开关,则接下来将显示最后提交的版本和最后提交的作者。
工作副本路径始终是最后一个字段,因此它可以包含空格。
--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”的部分。