Skip to main content

マージコンフリクト、「人間関係の問題」

マージ操作は、祖先が共通だが変更内容が異なる 2 つのブランチの内容をマージします。ターゲットを絞ったブランチの統合は主に Git ブランチ を使用して表示 マージ コマンド。プルアクションにはマージ操作も含まれます。

マージ操作中に、ソースブランチとターゲットブランチの異なる状態が検出され、コンフリクトと呼ばれます。マージによって許可されないプロジェクト構造が「リレーションシップの問題」として認識されます。設定されているオプションによっては CODESYS Git 可能な限りこれらのコンフリクトを自動的に解決しようとしますが、解決方法はユーザーに任されます。

紛争が解決した後、 CODESYS Git 常に努力します 再同期 (プロジェクトストレージからプロジェクトを再読み込みします)。そのためには、で開いているプロジェクトを閉じます CODESYS そして、ストレージから新しいプロジェクトを作成します。

CODESYS Git は、マージ中に発生する可能性のある 2 種類の解決すべき問題を区別しています。

  • コンフリクト: 純粋な Git コンフリクト:1 つ以上のオブジェクトに競合する変更が加えられました。オブジェクトの内容に異なる変更が加えられている可能性があります

    基本的な「マージコンフリクト戦略」は Git マージオプションGit ブランチ 見る。この設定に応じて、可能な限り自動的にコンフリクト解決が実行されるか、特定の方向で基本的な承認アクションが実行されるか、コンフリクトが手動で処理されるかのいずれかになります。

    手動でコンフリクトを解決する場合、コンフリクトしているオブジェクトはそのように表示されます。 [ステータス] と [ステージング] 表示。競合しているオブジェクトをダブルクリックすると、比較ビューが開きます。比較ビューでは、2 つのブランチで発生した変更が並べて表示されます。内容の違いを明確に受け入れることで、内容の違いを整理できます。純粋に名前空間のコンフリクトである場合は、プロジェクトツリーで名前を変更するか削除して解決する必要があります。「適用 (Apply)」をクリックしてコンフリクトを解決してください。その後、以前に競合していたオブジェクトは自動的に「Staged Changes」領域に移動されます

  • 「人間関係の問題」: 競合する変更の結果、プロジェクト構造が無効になりました CODESYS、Git のマージ機能では処理できません。外部ツールを使ってファイルシステムの外部で変更が加えられた可能性があります。または、異なるブランチから同じタイプまたは同じ名前のオブジェクトを同時に作成し、そのオブジェクトが、そのオブジェクトの同じ名前空間に配置されたとします CODESYS プロジェクト。これはAでは許可されていません CODESYS プロジェクト。または、親/子オブジェクトの関係が無効になっています。もう 1 つ考えられるのは、関係の問題が以前の合併が原因で、当面は作業を続けるために意図的に無視されていた場合です

    たとえば、1 つのデバイスの下に 2 つのアラーム設定が挿入されている状況が発生しますが、これは許可されません。

    ユーザーは、使用可能な手段 (あるオブジェクトを別のオブジェクトにマージ、削除、名前変更、または移動) を使用してプロジェクト構造を手動で修正する必要があります。

    重要

    バージョン 1.2.0.0 では、既存の関係の問題があるプロジェクトをさらに処理することもできます (無視してください)。注意:このような場合、プロジェクトに加えた変更は、後の再同期によって破棄されます。理由:再同期操作では、リレーションシップの問題が無視される前に保存されていたファイルシステムからプロジェクトバージョンが読み込まれます

の中に ステータス & ステージング つまり、ユーザーは以下のようにコンフリクトを確認したり編集したりできます。

  • Helpful commands are available in the context menu of a conflicting object. The current selection depends on the situation:

    該当オブジェクトをすべて表示 / このオブジェクトを表示: オブジェクトまたはオブジェクトは、で強調表示されます デバイス プロジェクトの様子。

    相手のものを使って解決: ソースブランチの状態が適用されます。

    当社製品を使用して解決: ターゲットブランチの状態が適用されます。

    自動的に解決: CODESYS Git 変更自体を統合しようとします。

    解決済みとしてマークする: プロジェクトに現在存在するオブジェクトが適用され、コンフリクトの解決とみなされます。対応するオブジェクトがステージングされました

    人間関係の問題を無視: リレーションシップの問題は、次の再同期まで無視されます。これは、プロジェクトの作業を継続したいだけで、コンフリクトが問題にならない場合に便利です

  • 競合するオブジェクトをダブルクリックすると、ソースブランチとターゲットブランチの内容の比較ビューが開きます。コンテンツが競合する場合、コンテンツをあるブランチから別のブランチに自由に適用できます

の中に メッセージ 表示すると、コンフリクトのエラーメッセージをダブルクリックして該当オブジェクトを開くことができます。