Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ソース管理の競合の解決

競合の調査と解決

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

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

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

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

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

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

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

競合の解決

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

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

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

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

    SVN では、そのファイルと競合するバージョンのファイル間の差分が比較結果に示されます。

    Git™ プロジェクトでは、ブランチ上のファイルと、マージ先のブランチ上のファイル間の差分を示す比較レポートが開きます。

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

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

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

    Git では、ソース管理の [詳細] ダイアログ ボックスの [ブランチのステータス] が MERGING から SAFE に変わります。

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

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

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

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

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

ヒント

ソース管理でファイルを他のバージョンのファイルと比較すると、既定では右のファイルがユーザーのサンドボックスにあるバージョンで、左のファイルが競合 (たとえば filename_theirs) の原因となっている以前のバージョンまたは別のバージョンの一時コピーです。このファイルの位置は入れ替えることができるため、比較レポートの上部で左右のファイルのファイル パスを必ず確認します。一時コピーとの差分をご使用のサンドボックスにマージして競合を解決します。

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

    マージされた差分には、グレーの強調表示行と緑のマージ矢印が表示されます。

    レポート上部のマージされたファイル名には、アスタリスク (filename.m*) が表示され、ファイルに未保存の変更があることを示しています。

  2. [マージしたファイルを保存] をクリックすると、ファイルがサンドボックスに保存されます。競合を解決するには、競合のあるファイルをマージしたファイルで上書き保存します。

  3. エディターでファイルを調べる場合は、レポートの行番号リンクをクリックします。

    メモ

    エディターでさらに変更を行う場合、変更を反映するために比較レポートは更新されず、レポート リンクは正しくなくなる可能性があります。

  4. 変更を解決したら、競合解決済みとしてマークします。現在のフォルダー ブラウザーでそのファイルを右クリックして、[ソース管理][競合が解決済みであるとしてマークする] を選択します。

競合マーカーの抽出

競合マーカーとは

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

注意

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

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

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

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

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

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

競合マーカーの抽出

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

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

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

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

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