パッチの操作

パッチを使用すると、開発者は、作業をリポジトリーに保管せずに共用できます。 これは、リポジトリーを共用するけれど、リポジトリーの書き込みアクセス権を持っていないプロジェクトに貢献したい開発者の手助けとなります。 この状況において、開発者は、パッチを作成して、書き込みアクセス権を持っている開発者にそれを 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. パッチ・ファイルに保管されているパス名の共通接頭部が、現行ワークスペースのパス名に一致しない場合は、 「先行パス名セグメントを無視する」ことができます。
  3. 「空白の無視」オプションを使用して、パッチ・ファイルとワークスペース内のファイルとの空白の違いとは関係なく マッチング処理を行います。
  4. 「最大 fuzz 要因」(パッチの用語) を調整します。 この要因は、「hunk」で許される元の行からの距離を決定します。 デフォルトは 2 です。このため、「hunk」がパッチ・ファイルで指定された行で一致しない場合、リソース・パッチャーはその位置の前後で、「hunk」の「fuzz」行数と一致させるように試みます。
  5. ワークスペースにすでに適用されているパッチ・ファイルに「逆パッチ」オプションを使用してください。 このオプションは、パッチを元に戻したり、やり直すのにも役立ちます。

関連概念
CVS によるチーム・プログラミング

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

関連参照
CVS

 
Copyright IBM Corporation and others 2000, 2003