本文档尚在编写中,内容可能随时更改,可能无法准确描述任何已发布的 Apache™ Subversion® 软件版本。将此页面添加为书签或向其他人推荐此页面可能不是一个好主意。请访问 https://svnbook.subversion.org.cn/ 获取该书的稳定版本。
Subversion 试图消除 cvs status 和 cvs update 命令之间的许多混淆。
cvs status 命令有两个目的:一是向用户显示工作副本中的任何本地修改,二是向用户显示哪些文件已过期。不幸的是,由于 CVS 的状态输出难以阅读,许多 CVS 用户根本没有使用此命令。相反,他们养成了运行 cvs update
或 cvs -n update
来快速查看其更改的习惯。如果用户忘记使用 -n
选项,则会产生一个副作用,即合并他们可能尚未准备好处理的存储库更改。
Subversion 通过使 svn status 的输出对于人和解析器都易于阅读来消除这种混乱。此外,svn update 只打印有关更新的文件的信息,不 包括本地修改。
svn status 打印所有具有本地修改的文件。默认情况下,不会联系存储库。虽然此子命令接受大量选项,但以下是最常用的选项
-u
联系存储库以确定并显示过期信息。
-v
显示版本控制下的所有条目。
-N
以非递归方式运行(不进入子目录)。
svn status 命令有两种输出格式。在默认的 “简短” 格式中,本地修改看起来像这样
$ svn status M foo.c M bar/baz.c
如果您指定 --show-updates
(-u
) 选项,则使用较长的输出格式
$ svn status -u M 1047 foo.c * 1045 faces.html * bloo.png M 1050 bar/baz.c Status against revision: 1066
在这种情况下,会显示两列新内容。如果文件或目录已过期,则第二列包含一个星号。第三列显示该项的工作副本版本号。在前面的示例中,星号表示如果我们更新,则将修补 faces.html
,并且 bloo.png
是存储库中新添加的文件。(bloo.png
旁边没有任何版本号,这意味着它尚未存在于工作副本中。)
有关 svn status 的更详细讨论,包括对前面示例中显示的状态代码的解释,请参阅 名为“查看您的更改概述”的部分。
svn update 更新您的工作副本,并仅打印有关它更新的文件的信息。
Subversion 已将 CVS 的 P
和 U
代码合并为一个 U
。当发生合并或冲突时,Subversion 只打印 G
或 C
,而不是关于它的整个句子。
有关 svn update 的更详细讨论,请参阅 名为“更新您的工作副本”的部分。