您应该定期确保其他人所做的更改被合并到您的本地工作副本中。从服务器获取更改到本地副本的过程称为 更新。更新可以在单个文件、一组选定文件或递归地对整个目录层次结构进行。要更新,请选择您想要的文件和/或目录,右键单击 并选择资源管理器上下文菜单中的 → 。将弹出一个窗口,显示更新运行时的进度。其他人所做的更改将被合并到您的文件中,保留您可能对相同文件所做的任何更改。存储库 不会 受更新影响。
进度对话框使用颜色编码来突出显示不同的更新操作
新项目添加到您的 WC 中。
从您的 WC 中删除了多余的项目,或者在您的 WC 中替换了缺失的项目。
来自存储库的更改已成功与您的本地更改合并。
来自存储库的更改与本地更改合并,导致冲突,您需要解决这些冲突。
您的 WC 中未更改的项目已使用来自存储库的较新版本更新。
这是默认颜色方案,但您可以使用设置对话框自定义这些颜色。阅读 名为“TortoiseSVN 颜色设置”的部分 以获取更多信息。
如果您在更新期间遇到任何 冲突(如果其他人更改了与您相同的相同文件中的相同行,并且这些更改不匹配,则可能会发生这种情况),则对话框会以红色显示这些冲突。您可以 双击 这些行以启动外部合并工具来解决冲突。
更新完成后,进度对话框在文件列表下方显示更新、添加、删除、冲突等项目的数量摘要。可以使用 Ctrl+C 将此摘要信息复制到剪贴板。
标准更新命令没有选项,只是将您的工作副本更新到存储库的 HEAD 修订版,这是最常见的用例。如果您想对更新过程进行更多控制,您应该使用
→ 。这允许您将您的工作副本更新到特定修订版,而不仅仅是更新到最新修订版。假设您的工作副本在修订版 100,但您希望它反映它在修订版 50 中的状态 - 那么只需更新到修订版 50。
在同一个对话框中,您还可以选择更新当前文件夹的 深度。使用的术语在 名为“检出深度”的部分 中进行了描述。默认深度为 工作副本,它保留现有的深度设置。您还可以将深度设置为 粘性
,这意味着后续更新将使用该新深度,即该深度将用作默认深度。
为了更方便地将特定项目包含或排除在结帐之外,请点击
按钮。这将打开一个新的对话框,您可以在其中勾选您想要在工作副本中保留的所有项目,并取消勾选您不需要的项目。
您还可以选择是否忽略更新中的任何外部项目(例如,使用 svn:externals
引用的项目)。
如果您将文件或文件夹更新到特定版本,则不应更改这些文件。当您尝试提交它们时,您将收到 “过时” 错误消息!如果您想撤销对文件的更改并从早期版本重新开始,您可以从版本日志对话框中回滚到以前的版本。请查看 名为“回滚(撤销)存储库中的版本”的部分 以获取更多说明和替代方法。
有时可能很有用,可以查看您的项目在历史记录中的某个早期时间点的样子。但总的来说,将单个文件更新到早期版本不是一个好主意,因为它会使您的工作副本处于不一致的状态。如果您正在更新的文件已更改名称,您甚至可能会发现该文件从您的工作副本中消失,因为在早期版本中不存在该名称的文件。您还应该注意,该项目将显示一个正常的绿色覆盖,因此它与最新的文件无法区分。
如果您只想获得文件的旧版本的本地副本,最好使用
→ 命令从该文件的日志对话框中。如果您在资源管理器中选择多个文件和文件夹,然后选择
,则所有这些文件/文件夹将逐个更新。TortoiseSVN 确保来自同一存储库的所有文件/文件夹都更新到完全相同的版本!即使在这些更新之间发生了其他提交。