使用补丁

补丁允许开发者共享工作而不必将它存储在资源库中。当开发者想要通过资源库对共享的项目添加内容,但对资源库又没有写访问权时,这是很有用的。在此情况下,开发者可以创建补丁并根据项目定义的过程用电子邮件将其发送给具有写访问权的开发者,或将其附加至项目使用的故障报告系统中的故障中。具有写访问权的开发者就可以将补丁应用到项目并落实更改。

要从 CVS 项目创建补丁:

  1. 选择包含要包括在补丁中的修改的资源。由于“创建补丁”向导在以缺省方式运行时知道如何创建多项目补丁,所以,您可以选择多个项目中并处于任何级别的资源。还应将补丁应用于生成它的同一文件修订,所以应执行一些步骤以确保将补丁应用到同一资源队列(完成此操作的最简单方法是在某版本顶层创建补丁)。
  2. 从弹出菜单,选择小组 > 创建补丁...。“创建补丁”向导将打开。
  3. 选择要保存补丁的位置:
    1. 保存至剪贴板 - 这将把补丁放置在剪贴板上,以便可以将其粘贴到文本编辑器(如电子邮件程序)中。
    2. 保存至文件系统 - 这将把补丁放置到本地文件系统中指定的文件中。
    3. 在工作空间中保存 - 这将把补丁放置到某个现有工作台项目内指定的文件中。
    对于小补丁,使用剪贴板来传送补丁可能也是合理的,但是在大多数情况下,使用本地文件系统是最好的选择。
  4. 通过展开“更改”窗格中显示的“资源”树,可以预览补丁所选项并进行微调。只有那些选中的元素才会包括在补丁中。单击下一步以配置如何生成补丁。
  5. 选择如何配置补丁:
    1. diff 输出格式 - 允许选择几个常用 diff 输出格式。Unified 是由许多补丁应用程序工具(包括 Eclipse)使用的格式。
    2. 补丁根 - 允许您指定补丁根的级别。选项为工作空间项目所选项

      工作空间允许在补丁中包括多个项目中的资源,这是缺省选项。工作空间补丁可以应用于工作空间中的任何资源 - 它们包含足够的信息来允许“应用补丁”向导确定对哪些资源应用补丁。

      项目补丁的根在项目级 - 这意味着它们只能包含一个项目中的资源,并且只能应用于同一个项目。

      所选项补丁的根是所选资源,它只能应用于该资源。
  6. 单击完成
  7. 对正在修补的项目以适当的方式传送补丁。

要应用补丁:

  1. 选择生成补丁所在的资源。此资源应包含与生成补丁所在的队列相同的文件修订。
  2. 从弹出菜单中选择小组 > 应用补丁...。“资源修补器”向导将打开。
  3. 指示将查找补丁的位置:
    1. 文件 - 补丁在本地文件系统上的文件中。输入文件的完整路径或使用浏览... 按钮来查找文件。
    2. 剪贴板 - 补丁在剪贴板上。警告:使用基于文件的补丁更安全。如果使用剪贴板并且补丁是在不同平台(即,Linux 与 Windows)上生成的,则可能不会正确地处理行结尾。
    3. 工作空间 - 该补丁已被保存在工作空间中的某个位置中。
    单击下一步以查看应用补丁的效果。
  4. 可选步骤仅当补丁的根在项目级或所选项级时,此步骤才适用 - 根在工作空间的补丁将自动转到“预览补丁”页。在“指定补丁目标”页中,应该选择要作为补丁的根的资源。
  5. “预览补丁”页显示补丁是否可以成功地应用于工作空间中的文件。顶部窗格显示了补丁中包含的更改列表。如果在树中选择了叶项,则底部窗格将以容易读取的并列方式显示补丁文件的该部分(在补丁术语中称为“块”)。注意:底部窗格显示应用块后资源在工作空间中的外观的预览。它仅显示补丁文件的内容。
    1. 选择的项指示补丁(或块)可以成功应用于工作空间资源。可以通过取消选择补丁或各个块来排除它们。
    2. 红色感叹号指示补丁或块有问题。
      如果补丁的格式不够严谨,或对其生成补丁的一个或多个文件的修订与补丁要应用于的修订不匹配,将发生这种情况。
      查找括号中故障的原因。

      要成功地应用完整补丁,您将必须解决问题(标有红色感叹号)并通过调整此向导页上的选项(请参阅下面的“选项”)来获取各处所选择的项。

  6. 如果没有问题,单击完成以应用补丁。工作空间现在将包含补丁修改的每个文件的传出更改。

应用补丁的选项

要获取补丁文件的成功匹配项,您有以下选项:
  1. 回到“资源修补器”向导的第一页并选择补丁应应用的正确资源。
  2. 如果存储在补丁文件中的路径名的公共前缀与当前工作空间中的路径名不匹配,则可以“忽略前导路径名段”。
  3. 使用“忽略空格”选项来使匹配进程忽略补丁文件与工作空间中文件之间的空格差别。
  4. 调整“最大模糊因子”(补丁术语)。此因子确定查找匹配项时在上下文中从上到下忽略的行数。缺省值是 2。
  5. 对已应用于工作空间的补丁文件使用“逆向补丁”选项。此选项对于撤销或重新执行补丁也很有用。
  6. 对于工作空间补丁来说,请使用“重新确定补丁目标”来选择工作空间中的另一项目,以将补丁更改应用于该项目。要完成此任务,请在顶部窗格中选择项目,然后单击“重新确定补丁目标”按钮。这将打开一个对话框,该对话框列示了工作空间中的所有可用项目。请选择项目并单击“确定”,这将把补丁更改应用于所选项目。

相关概念
CVS 小组编程

相关任务
比较资源

相关参考
CVS