MetaEditorヘルププロジェクトおよびMQL5ストレージ変更の統合

変更の統合

共有プロジェクトで作業するとき、チームでは、同じファイルが複数のユーザーによって同時に編集されることがあります。 このような変更を上書きから保存するために、MetaEditorはデータをマージする関数を備えています。

既に誰かがストレージに変更されているファイルを保存しようとすると、MetaEditorは最初に最新の変更を取得するように求められます。 変更を受信すると、データのマージが試行されます。ストレージからの変更がローカルデータコピーに適用され、現在のローカルの変更を保存しました。

  • マージは、ANSI 形式のソースコード (mq4、mq5、mqh、cpp、および h) を持つテキストファイルにのみ適用されます。 Bmp および wav ファイルは常に新しいバージョンによって完全に置き換えられます。
  • ソースコードファイルは、行ごとに比較されます。 競合が発生した場合 (たとえば、ローカルファイルとリポジトリ内の対応するファイルで同じ行が変更された場合)、マージアルゴリズムはローカル変更の保存を最大化します。

サンプルのマージ

2つのファイルをマージする典型的なケースを考えてみましょう。 前述のように、マージ中に、ソースコードファイルは行ごとに比較されます。 ストレージ内のファイルにローカルファイルに存在しない行が含まれている場合は、行が追加されます。 次の2つのファイルをマージする例を考えてみましょう。

2つのファイルをマージする例

クリックした後ストレージからの更新ローカルの変更は優先度が高いので、ストレージからの更新は、ローカルファイルは変更されません。 ストレージファイルに新しい行 "x = 0; " が含まれていた場合は、 "return (true); " の行は変更されていません。

2つのファイルをマージする例

  • マージの主な原則に、ローカルデータの優先度が高いことがあります。 このアルゴリズムは、ローカルの変更の保存を最大化することを目指しています。
  • マージ中には多くの種類の競合があります。 このセクションでは、最も一般的な状況の1つだけが考慮されました。 マージアルゴリズムは複雑で、分析ファイルに包括的なアプローチを提供します。 合併の詳細については、 サブバージョン の本にありますの利用をお勧めします。