メインコンテンツ

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

自分と別のユーザーが別々の SVN 作業フォルダーに含まれている同じファイルに変更を加えた場合、変更をコミットする前に作業フォルダーを更新すると、競合が発生する可能性があります。

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

  • 比較ツールを使用して、リビジョン間の変更をマージします。詳細については、競合の解決を参照してください。

  • エディターでファイルを編集するかファイルを上書きして、手動で変更を行います。競合の解決に比較ツールを使用しない場合は、変更をコミットする前に競合のあるファイルを解決済みとしてマークする必要があります。[ソース管理] パネルで、ファイルを右クリックして [競合が解決済みであるとしてマークする] を選択します。

競合の解決

ファイルの競合を解決するには、次の手順に従います。

  1. [ソース管理] パネルの変更済みファイルのリストで赤い警告記号 を探して、競合のあるファイルを特定します。[ソース管理] アイコンがサイドバーにない場合は、[パネルをさらに開く] ボタン three-dot icon をクリックし、[ソース管理] パネルを選択します。

    競合の警告アイコンは、[ファイル] パネルと [プロジェクト] パネルのソース管理列にも表示されます。

    SVN repository in the Source Control panel with one file conflict

  2. 競合の詳細を調べるには、競合のあるファイルを右クリックして [競合を表示] を選択します。テキストベースのファイルの場合は、2-way マージ ツールが開きます。モデル ファイルの場合は、3-way マージ ツールが開きます。

  3. 競合を修正するには、いずれかの変更内容を保持するか、両方を結合してからマージされたファイルを保存します。テキスト ファイルのマージおよびモデルの比較 (Simulink)を参照してください。

  4. 変更済みファイルをコミットするには、[コミット] をクリックします。

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

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

テキスト比較レポートに競合マーカー <<<<<<< .mine が表示される場合は、競合マーカーを抽出してからマージします。

詳細については、競合マーカーの抽出を参照してください。

ファイルは、左から右へのみマージできます。ソース管理の別のバージョンと比較する場合、右側のファイルがローカル バージョンになります。左側のファイルは、競合 (filename_theirs など) を引き起こしている前のバージョンまたは別のバージョンの一時的なコピーです。比較レポートの上部で両方のファイルのファイル パスを確認します。次の手順に従って、左側のファイル (一時的なコピー) から右側のファイルへ差分をマージして競合を解決します。

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

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

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

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

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

競合マーカーの抽出

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

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

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

注意

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

競合とマークされていないファイルに競合マーカーが残っていることがあります。競合マーカーは、自分または別のユーザーが競合マーカーを削除せずに競合が解決したとマークし、ファイルをコミットした場合に含まれる可能性があります。競合があるとマークされていないファイルに競合マーカーが確認された場合、次の手順に従って競合マーカーを抽出します。

  1. [ファイル] パネルまたは [プロジェクト] パネルでファイルを右クリックして [ソース管理][ファイルの競合マーカーのチェック] を選択します。

    Conflict Markers dialog box showing the path to the reconstructed files and Merge Files and Close buttons

  2. MATLAB は、マージ前の元のファイルの内容を再構成し、[Mine] フィールドと [Theirs] フィールドにパスを表示します。

  3. [ファイルのマージ] をクリックしてマージ ツールを開き、競合を解決します。競合の解決を参照してください。

参考

トピック