手册

从其他人那里更新您的工作副本

图 4.11 更新完成的进度对话框

Progress dialog showing finished update


您应该定期确保其他人所做的更改被合并到您的本地工作副本中。从服务器获取更改到本地副本的过程称为 更新。更新可以在单个文件、一组选定文件或递归地对整个目录层次结构进行。要更新,请选择您想要的文件和/或目录,右键单击 并选择资源管理器上下文菜单中的 TortoiseSVN更新。将弹出一个窗口,显示更新运行时的进度。其他人所做的更改将被合并到您的文件中,保留您可能对相同文件所做的任何更改。存储库 不会 受更新影响。

进度对话框使用颜色编码来突出显示不同的更新操作

紫色

新项目添加到您的 WC 中。

深红色

从您的 WC 中删除了多余的项目,或者在您的 WC 中替换了缺失的项目。

绿色

来自存储库的更改已成功与您的本地更改合并。

亮红色

来自存储库的更改与本地更改合并,导致冲突,您需要解决这些冲突。

黑色

您的 WC 中未更改的项目已使用来自存储库的较新版本更新。

这是默认颜色方案,但您可以使用设置对话框自定义这些颜色。阅读 名为“TortoiseSVN 颜色设置”的部分 以获取更多信息。

如果您在更新期间遇到任何 冲突(如果其他人更改了与您相同的相同文件中的相同行,并且这些更改不匹配,则可能会发生这种情况),则对话框会以红色显示这些冲突。您可以 双击 这些行以启动外部合并工具来解决冲突。

更新完成后,进度对话框在文件列表下方显示更新、添加、删除、冲突等项目的数量摘要。可以使用 Ctrl+C 将此摘要信息复制到剪贴板。

标准更新命令没有选项,只是将您的工作副本更新到存储库的 HEAD 修订版,这是最常见的用例。如果您想对更新过程进行更多控制,您应该使用 TortoiseSVN更新到修订版...。这允许您将您的工作副本更新到特定修订版,而不仅仅是更新到最新修订版。假设您的工作副本在修订版 100,但您希望它反映它在修订版 50 中的状态 - 那么只需更新到修订版 50。

在同一个对话框中,您还可以选择更新当前文件夹的 深度。使用的术语在 名为“检出深度”的部分 中进行了描述。默认深度为 工作副本,它保留现有的深度设置。您还可以将深度设置为 粘性,这意味着后续更新将使用该新深度,即该深度将用作默认深度。

为了更方便地将特定项目包含或排除在结帐之外,请点击 选择项目... 按钮。这将打开一个新的对话框,您可以在其中勾选您想要在工作副本中保留的所有项目,并取消勾选您不需要的项目。

您还可以选择是否忽略更新中的任何外部项目(例如,使用 svn:externals 引用的项目)。

注意

如果您将文件或文件夹更新到特定版本,则不应更改这些文件。当您尝试提交它们时,您将收到 过时 错误消息!如果您想撤销对文件的更改并从早期版本重新开始,您可以从版本日志对话框中回滚到以前的版本。请查看 名为“回滚(撤销)存储库中的版本”的部分 以获取更多说明和替代方法。

更新到版本 有时可能很有用,可以查看您的项目在历史记录中的某个早期时间点的样子。但总的来说,将单个文件更新到早期版本不是一个好主意,因为它会使您的工作副本处于不一致的状态。如果您正在更新的文件已更改名称,您甚至可能会发现该文件从您的工作副本中消失,因为在早期版本中不存在该名称的文件。您还应该注意,该项目将显示一个正常的绿色覆盖,因此它与最新的文件无法区分。

如果您只想获得文件的旧版本的本地副本,最好使用 上下文菜单将版本保存到... 命令从该文件的日志对话框中。

多个文件/文件夹

如果您在资源管理器中选择多个文件和文件夹,然后选择 更新,则所有这些文件/文件夹将逐个更新。TortoiseSVN 确保来自同一存储库的所有文件/文件夹都更新到完全相同的版本!即使在这些更新之间发生了其他提交。

TortoiseSVN 主页