Main Content

SVN ソース管理の競合の解決

競合の調査と解決

自分と別のユーザーが別々のサンドボックスまたは別々のブランチに含まれている同じファイルに変更を加えた場合、変更済みファイルをコミットしようとすると、競合に関するメッセージが表示されます。必要に応じて競合の解決の手順に従って競合マーカーを抽出し、競合の原因となっている違いを比較して競合を解決します。

競合を解決するには、以下の操作を実行します。

  • 比較ツールを使用して、リビジョン間の変更をマージします。

  • 1 つの変更セットを他の変更セットで上書きすることを決定します。

  • ファイルを編集して手動で変更を行います。

比較ツールを使用した変更のマージについての詳細については、テキスト ファイルのマージを参照してください。

競合ありとしてマークされているファイルの状態を確認したら、競合解決済みとしてマークし、ファイルをコミットできます。

競合の解決

  1. 現在のフォルダー ブラウザーで競合のあるファイルを探します。

  2. 競合を示す赤い警告記号 の付いたファイルの [SVN] ステータス列を確認します。

  3. 競合のあるファイルを右クリックして [ソース管理][競合を表示] を選択し、バージョンを比較します。

  4. 競合を調べます。そのファイルと競合するバージョンのファイル間の差分を示す比較レポートが開きます。

  5. 比較ツール レポートを使用して、競合の解決方法を決定します。

    テキスト ファイルのマージの説明に従って、比較ツールを使用して、リビジョン間の変更をマージします。

  6. 変更を解決し、サンドボックス内のバージョンをコミットする準備ができたら、現在のフォルダー ブラウザーでファイルを右クリックし、[ソース管理][競合が解決済みであるとしてマークする] を選択します。

  7. 変更済みファイルをコミットします。

テキスト ファイルのマージ

テキスト ファイルを比較するときに、1 つのファイルの変更を他のファイルにマージできます。変更のマージは、バージョンの異なるファイル間の競合を解決する場合に役に立ちます。

次のようにテキスト比較レポートに競合マーカーが表示される場合は、

<<<<<<< .mine
競合マーカーを抽出してからマージします (競合マーカーの抽出を参照)。

ヒント

左から右へのマージのみ実行できます。ソース管理の別のバージョンと比較する場合、右のファイルが、サンドボックス内のバージョンになります。左のファイルは、競合 (filename_theirs など) を引き起こしている前のバージョンまたは別のバージョンの一時的なコピーです。比較レポートの上部で左および右のファイルのファイル パスを確認します。左 (一時的なコピー) ファイルから右ファイルへ差分をマージして競合を解決します。

  1. 比較ツール レポートで差分を選択し、[内容の置換] をクリックします。選択された差分が左のファイルから右のファイルへコピーされます。

    内容の置換を元に戻すには、[元に戻す] をクリックします。

    あるいは、インラインの [内容の置換] アイコンと [元に戻す] アイコンを使用します。

    レポートの先頭のマージされたファイル名に、変更未保存 (ダーティ) フラグ (filename.m*) が表示され、ファイルに保存されていない変更が含まれることがわかります。

  2. [確定して閉じる] をクリックすると変更のマージが保存され、競合が解決済みとしてマークされます。

競合マーカーの抽出

競合マーカーとは

ソース管理ツールでは、バイナリとして登録されていないファイル (テキスト ファイルなど) に競合マーカーを挿入できます。MATLAB® を使用して、競合マーカーを抽出し、競合の原因となっているファイルを比較します。このプロセスは、競合の解決方法を決定するのに役立ちます。

注意

ファイルをソース管理ツールに登録して、ファイルで競合マーカーの挿入や破損が生じないようにします。詳細については、バイナリ ファイルの SVN への登録を参照してください。ファイルに競合マーカーが含まれている場合、MATLAB のツールが競合の解決に役立ちます。

競合マーカーは次の形式で表されます。

<<<<<<<["mine" file descriptor]
["mine" file content]
=======
["theirs" file content]
<<<<<<<["theirs" file descriptor]

競合マーカーが含まれるファイルを開こうとすると、[競合マーカーが見つかりました] ダイアログ ボックスが開きます。指示に従って、競合マーカーを抽出してファイルを修正します。競合マーカーを抽出した後、競合を解決します (競合の調査と解決を参照)。

競合マーカーを表示するには、[競合マーカーが見つかりました] ダイアログ ボックスで、[ファイルの読み込み] をクリックします。MATLAB では競合マーカーは認識されないため、ファイルの読み込みは行わないでください。代わりに、[ファイルの修正] をクリックして、競合マーカーを抽出します。

MATLAB では、競合のあるファイルについてのみ競合マーカーの確認が行われます。

競合マーカーの抽出

競合のあるファイルを開くまたは [競合を表示] を選択すると、MATLAB はファイルの競合マーカーを確認し、競合マーカーを抽出しようとします。MATLAB では、競合のあるファイルについてのみ競合マーカーの確認が行われます。

ただし、競合とマークされていないファイルの場合、そのまま競合マークが含まれていることがあります。これは、別のユーザーが競合マーカーを削除せずに競合が解決したとマークし、ファイルをコミットした場合に発生します。競合があるとマークされていないファイルに競合マーカーが確認された場合、競合マーカーを抽出できます。

  1. 現在のフォルダー ブラウザーで、ファイルを右クリックし、[ソース管理][競合マーカーをファイルに抽出] を選択します。

  2. [競合マーカーをファイルに抽出] ダイアログ ボックスで、既定のオプションをそのままにして、競合のあるファイルに "自分の" ファイル バージョンをコピーします。[抽出したファイルを比較します] チェック ボックスをオンのままにします。[抽出] をクリックします。

  3. 比較ツール レポートを通常どおり使用して、競合の解決を続行します。