使用补丁程序

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

要从 CVS 项目创建补丁程序:

  1. 选择包含要包括在补丁程序中的修改的资源。尽管它可以是任何文件夹,但是选择项目自身很容易,因为必须将补丁程序应用到生成它的同一资源中。还应将补丁程序应用于生成它的同一文件修订,所以应执行一些步骤以确保将补丁程序应用到同一资源队列(完成此操作的最简单方法是在某版本顶层创建补丁程序)。
  2. 从弹出菜单,选择小组 > 创建补丁程序...。“创建补丁程序”向导将打开。
  3. 选择要保存补丁程序的位置:
    1. 保存至剪贴板 — 这将把补丁程序放置在剪贴板上,以便可以将其粘贴到文本编辑器(如电子邮件程序)中。
    2. 保存至文件系统 — 这将把补丁程序放置到本地文件系统中指定的文件中。
    3. 在工作区中保存 — 这将把补丁程序放置到某个现有工作台项目内指定的文件中。
    对于小补丁程序,使用剪贴板来传送补丁程序可能也是合理的,但是在大多数情况下,使用本地文件系统是最好的选择。单击下一步以配置如何生成补丁程序。
  4. 选择如何配置补丁程序:
    1. 递归至子文件夹中 — 如果禁用,则仅将选择的直接子代包括在补丁程序中。否则,将包括所有后代。
    2. 将新文件包括在补丁程序中 — 如果禁用,则仅包括处于 CVS 版本控制之下的文件。否则,还将包括新创建但尚未添加或已忽略的文件。
    3. diff 输出格式 — 允许选择几个常用 diff 输出格式。Unified 是由许多补丁应用程序工具(包括 Eclipse)使用的格式。
  5. 单击完成
  6. 对正在修补的项目以适当的方式传送补丁程序。

要应用补丁程序:

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

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

  5. 如果没有问题,单击完成以应用补丁程序。工作区现在将包含补丁程序修改的每个文件的出局更改。

应用补丁程序的选项

要获取补丁程序文件的成功匹配项,您有以下选项:
  1. 回到“资源修补器”向导的第一页并选择补丁程序应应用的正确资源。
  2. 如果存储在补丁程序文件中的路径名的公共前缀与当前工作区中的路径名不匹配,则可以“忽略前导路径名段”。
  3. 使用“忽略空格”选项来使匹配进程忽略补丁程序文件与工作区中文件之间的空格差异。
  4. 调整“最大模糊因子”(补丁程序术语)。此因子确定允许块与其原始行后的多少行进行匹配。缺省值为两行。所以,如果块在补丁程序文件中给定的行上不匹配,则“资源修补器”将尝试将块与该位置之前或之后的“fuzz”(模糊操作)行相匹配。
  5. 对已应用于工作区的补丁程序文件使用“逆向补丁”选项。此选项对于撤销或重新执行补丁程序也很有用。

相关概念
用 CVS 编程的小组

相关任务
比较资源

相关参考
CVS

 
Copyright IBM Corporation and others 2000, 2003