本文档用于描述 Subversion 1.6.x 系列。如果您正在运行其他版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/ 并参考适用于您 Subversion 版本的文档。

名称

svn update (up) — 更新您的工作副本。

概要

svn update [PATH...]

描述

svn update 将来自版本库的更改引入您的工作副本。如果没有指定版本,它将使您的工作副本更新到 HEAD 版本。否则,它将工作副本同步到 --revision (-r) 选项指定的版本。作为同步的一部分,svn update 还会删除工作副本中发现的任何陈旧锁定(参见 名为“有时您只需要清理”的部分)。

对于每个更新的项目,它会打印一行,以一个字符开头,报告执行的操作。这些字符的含义如下

A

添加

B

锁定已损坏(仅限第三列)

D

删除

U

更新

C

冲突

G

合并

E

存在

第一列中的字符表示对实际文件的更新,而对文件属性的更新显示在第二列中。锁定信息在第三列中打印。

与大多数子命令一样,您可以使用 --depth 选项将更新操作的范围限制为特定的树深度。或者,您可以使用 --set-depth 选项在更新目标上设置新的 粘性 工作副本深度。

选项

--accept ACTION
--changelist
--depth ARG
--diff3-cmd CMD
--editor-cmd CMD
--force
--ignore-externals
--quiet (-q)
--revision (-r) REV
--set-depth ARG

示例

获取自上次更新以来发生的版本库更改

$ svn update
A    newdir/toggle.c
A    newdir/disclose.c
A    newdir/launch.c
D    newdir/README
Updated to revision 32.

您还可以将您的工作副本 更新 到旧版本(Subversion 没有像 CVS 那样 粘性 文件的概念;参见 附录 B,Subversion for CVS 用户

$ svn update -r30
A    newdir/README
D    newdir/toggle.c
D    newdir/disclose.c
D    newdir/launch.c
U    foo.c
Updated to revision 30.
[Tip] 提示

如果您想检查单个文件的旧版本,您可能希望使用 svn cat — 它不会更改您的工作副本。

svn update 也是用于配置稀疏工作副本的主要机制。当与 --set-depth 一起使用时,更新操作将通过修改其记录的周围深度(根据需要从版本库获取信息)来省略或重新包含单个工作副本成员,以您指定的深度。有关稀疏目录的更多信息,请参见 名为“稀疏目录”的部分