此文本尚未完工,内容可能会发生很大变化,可能不准确地描述任何已发布版本的 Apache™ Subversion® 软件。将此页面添加书签或以其他方式推荐给其他人可能不是明智之举。请访问 https://svnbook.subversion.org.cn/ 获取该书籍的稳定版本。

名称

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

概要

svn update [PATH...]

描述

svn update 将来自存储库的更改引入您的工作副本。如果未给出修订版本,则它将使您的工作副本与 HEAD 修订版本保持同步。否则,它会将工作副本同步到由 --revision (-r) 选项给出的修订版本。作为同步的一部分,svn update 还会删除工作副本中发现的任何过时的锁(参见 名为“有时您只需要清理”的部分)。

对于每个更新的项目,它将打印一行,该行以一个字符开头,报告所采取的操作。这些字符具有以下含义

A

已添加

B

已损坏的锁(仅第三列)

D

已删除

U

已更新

C

冲突

G

已合并

E

已存在

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

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

选项

示例

获取自上次更新以来发生的存储库更改

$ svn update
Updating '.':
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
Updating '.':
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 一起使用时,更新操作将通过将它们记录的周围深度修改为您指定的深度来省略或重新合并单个工作副本成员(根据需要从存储库中获取信息)。有关稀疏目录的更多信息,请参见 名为“稀疏目录”的部分

您可以在一次调用中更新多个目标,Subversion 不仅会优雅地跳过您提供的任何未版本化的目标,而且从 Subversion 1.7 开始还会包含所有已执行更新的更新后摘要

$ cd my-projects
$ svn update *
Updating 'calc':
U    button.c
U    integer.c
Updated to revision 394.
Skipped 'tempfile.tmp'
Updating 'paint':
A    palettes.c
U    brushes.c
Updated to revision 60.
Updating 'ziptastic':
At revision 43.
Summary of updates:
  Updated 'calc' to r394.
  Updated 'paint' to r60.
  Updated 'ziptastic' to r43.
Summary of conflicts:
  Skipped paths: 1
$