パッチの作業

パッチを使用すると、開発者は、作業をリポジトリーに保管せずに共用できます。 これは、リポジトリーを共用するけれど、リポジトリーの書き込みアクセス権を持っていないプロジェクトに貢献したい開発者の手助けとなります。 この状況において、開発者は、パッチを作成して、書き込みアクセス権を持っている開発者にそれを E メールするか、プロジェクトで使用するバグ報告システムのバグに、それを付加することができます。 書き込みアクセス権を持っている開発者は、それ以降パッチをプロジェクトに適用して、変更をコミットすることができます。

CVS プロジェクトからパッチを作成するには、次のようにします。

  1. パッチに組み込まれている修正を含むリソースを選択します。 任意のフォルダーでも構いませんが、パッチは生成された同じリソースに適用する必要があるので、プロジェクト自体を選択するのが最も簡単です。 パッチはまた、生成される同じファイル改訂に適用する必要があるので、 パッチが同じリソース・ラインアップに適用されていることを確かめる処理が必要です (これを最も簡単に行うには、バージョンの上部にパッチを作成することです)。
  2. ポップアップ・メニューから、「チーム > パッチの作成 ...」を選択します。 「パッチの作成」ウィザードが開きます。
  3. パッチを以下のどこに保管するかを選択します。
    1. クリップボードへ保管 」- パッチをクリップボードに置くので、 E メールのようなテキスト・エディターに貼り付けることができます。
    2. ファイル・システムへ保管 」- ローカル・ファイル・システムの指定したファイルにパッチを置きます。
    3. ワークスペースに保管 」- 既存のワークベンチ・プロジェクトの中で、指定したファイルにパッチを置きます。
    小さなパッチの場合、クリップボードを使用してパッチを転送するのが良い方法です。 しかし、ほとんどの場合は、最良のオプションはローカル・ファイル・システムを使用することです。 「次へ」をクリックして、パッチを生成する方法を構成します。
  4. 次のパッチの構成方法を選択します。
    1. サブフォルダーに戻す - 使用不可の場合は、選択した直接の子だけをパッチに含めます。 そうでない場合は、すべての子孫を含めます。
    2. 新規ファイルをパッチに含める - 使用不可の場合は、CVS バージョン管理のもとにあるファイルのみを含めます。 そうでない場合は、新規に作成されたが、追加されていないか、無視されたファイルも含まれます。
    3. Diff 出力フォーマット - いくつかの共通 diff 出力フォーマットを選択可能にします。 Unified は、Eclipse を含む多くのパッチ・アプリケーション・ツールで使用されるフォーマットです。
  5. 終了」をクリックします。
  6. パッチされるプロジェクト用に、適当に、パッチを転送します。

パッチを適用するには、次のようにします。

  1. パッチが生成されたリソースを選択します。 このリソースには、パッチが生成されたラインアップと同じファイル改訂を含む必要があります。
  2. ポップアップ・メニューから、「比較 > パッチ ...」を選択します。 「リソースのパッチ」適用ウィザードが開きます。
  3. 以下のパッチ検出場所を指示します。
    1. ファイル - パッチはローカル・ファイル・システムのファイルにあります。 ファイルへの絶対パスを入力するか、「ブラウズ ...」ボタンを使用して、ファイルを探します。
    2. クリップボード - パッチはクリップボードにあります。 警告: ファイルをベースにしたパッチを使用するのが安全です。 クリップボードが使用されていて、パッチが異なったプラットフォーム (Linux 対 Windows) で生成されていた場合は、行編集が正確に処理されないことがあります。
    次へ」をクリックして、パッチの適用結果を見ます。
  4. このページの上部ペインには、パッチがワークスペースのファイルに正常に適用できたどうかを示されます。 ツリーのリーフ項目を選択する場合は、最終ペインには、パッチ・ファイル (パッチの用語では「hunk」で知られる) の一部を横並び表示で容易に読み取れる形で示します。 注: 下部ペインには、「hunk」を適用した後、ワークスペースのリソースが、どのようになるかをプレビューで示すことはしません。 パッチ・ファイルの中味を直接表示します。
    1. 検査項目では、パッチ (あるいは「hunk」) がワークスペース・リソースを正常に適用できたことを示します。 パッチまたは個々の「hunk」をチェックしないと除外できます。
    2. 赤い感嘆符は、パッチあるいは「hunk」に問題があることを示します。
      これは、パッチが良く形成されていないか、パッチが生成されていた 1 つ以上のファイルの改訂が、 パッチが適用されている改訂に一致していない場合に起こります。
      括弧内に障害の理由があります。

      完全パッチを正常に適用するためには、問題 (赤い感嘆符) を除去し、このウィザード・ページのオプション (以下の「オプション」を参照) を引いて、各所でチェックされた項目を入手する必要があります。

  5. すべてが良い場合は、「終了」をクリックしてパッチを適用します。 ここでワークスペースには、パッチで修正された各ファイルの出力変更を含みます。

パッチを適用するオプション

パッチ・ファイルの正常に一致するものを入手するために、次のオプションがあります。
  1. 「リソースのパッチ適用」ウィザードの最初のページに戻って、パッチを適用する必要のある正しいリソースを選択します。
  2. パッチ・ファイルに保管されているパス名の共通接頭部が、 現行ワークスペースのパス名に一致しない場合は、「先行パス名セグメントを無視する」ことができます。:NONE.
  3. 「空白の無視」オプションを使用して、ワークスペース内のパッチ・ファイルとファイル間の空白の違いから独立して、 マッチング処理を行います。
  4. 「最大 fuzz 要因」(パッチの用語) の調整。 この要因は、「hunk」で許される元の行からの距離を決定します。 デフォルトは 2 です。このため、「hunk」がパッチ・ファイルで指定された行で一致しない場合、リソース・パッチャーはその位置の前後で、「hunk」の「fuzz」行数と一致させるように試みます。
  5. ワークスペースにすでに適用されている、パッチ・ファイルの「逆パッチ」オプションを使用してください。 このオプションは、パッチを元に戻したり、やり直すのにも役立ちます。

関連概念
CVS のチーム・プログラミング

関連タスク
リソースの比較

関連参照
CVS

 
Copyright IBM Corporation and others 2000, 2002