update (up): 将修改从存储库导入到工作副本。

用法:

update [PATH...]

如果没有给定版本,工作副本将同步至最新的 HEAD 版本。否则,同步工作副本至 -r 指定的版本。

对于每个更新的项目,将输出一行,其中带有代表所采取措施的字符。这些字符具有以下含义:

第一列中的字符报告有关项目本身的信息。
第二列中的字符报告有关项目属性的信息。
第三列中的 “B” 表示该文件的锁已损坏或被盗。
第四列中的 “C” 表示树冲突,而第一列和第二列中的 “C” 分别表示文件和属性值中的文本冲突。

如果使用 --force 选项,则更新在尝试添加相同路径的情况下,工作副本中未经版本控制的阻塞路径(已存在的同名项)不会自动导致更新失败。 如果阻塞路径与版本库中的对应路径具有相同的类型(文件或目录), 则对其进行版本控制,但其内容原样不动地保留在工作副本中。这意味着阻塞目录项下的未版本化子目录也可能阻塞并被版本控制。 对于文件,阻塞项和版本库中对应项之间的任何内容差异都被视为对工作副本的本地修改。 版本库中对应路径项的所有属性都将应用于阻塞路径项。在第一列中输出代码 “E” 来报告阻塞路径。

如果工作副本中缺少指定的更新目标,但是存在其直接父目录,将使用指定的深度在其父目录中检出目标。如果指定了 --parents 选项,也将会为目标创建任何丢失的父目录(深度设定为 depth=empty)。

使用 --set-depth 选项可以在操作目标上设置新的工作副本深度。

有效选项:  
-r [--revision] ARG : 指定版本 ARG (一些命令也接受 ARG1:ARG2 格式的版本范围),版本参数可以是如下之一:
  • NUMBER 版本号
  • '{' DATE '}' 在指定时间以后的版本
  • 'HEAD' 版本库中的最新版本
  • 'BASE' 工作副本的基准版本
  • 'COMMITTED' 最后提交的版本或基准版本之前的版本
  • 'PREV' 最后提交版本 COMMITTED 的前一版本
-N [--non-recursive] : 已过时,与 --depth=files 相同
--depth ARG : 限制输出深度为 ARG (empty, files, immediates, 或 infinity)
--set-depth ARG : 设置工作副本的新深度为 ARG (exclude, empty, files, immediates, 或 infinity)
-q [--quiet] : 不输出信息,或只输出概要信息
--diff3-cmd ARG : 使用 ARG 作为合并命令
--force : 将未版本控制的阻塞项作为修改项
--ignore-externals : 忽略外部定义
--changelist [--cl] ARG : 仅操作修改列表 ARG 的成员路径
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--accept ARG : 指定自动解决冲突的措施:
  • postpone 推迟(简写:p
  • working 使用工作副本
  • base 使用 BASE 版本
  • mine-conflict 冲突位置使用我的内容(简写:mc
  • theirs-conflict 冲突位置使用对方内容(简写:tc
  • mine-full 全部使用我的内容(简写:mf
  • theirs-full 全部使用对方的内容(简写:tf
  • edit 编辑内容(简写:e
  • launch 启动合并(简写:l
  • recommended 使用推荐的操作(简写:r
--parents : 自动创建中间目录
--adds-as-modification : 合并本地添加项与传入的添加项,而不引起树冲突。不建议使用此选项!作为替代方法,使用 “svn resolve” 解决树冲突。