MetaEditorヘルプ

変更のマージ

変更のマージ

MQL5 ストレージの主な利点の一つは、複数のユーザが同じファイルを扱えることです。

他のユーザにパーソナルストレージのフォルダを編集する権限を付与できる機能はまだ実装されていません。しかしながら、この時点で、同じ MQL5.community アカウントを用いて複数のコンピュータからストレージを扱うことができます。

マージの意味は、並行して変更されて MQL5 ストレージに記録されたデータと、データのローカルコピーに対して行われた変更を結合することです。

  • マージ対象はソースコード(mq4、mq5、mqh、cpp、h)としてのANSIテキストファイルのみです。Bmp と wav ファイルはまるごと新しいバージョンで置き換えられます。
  • ソースコードファイルは行単位で比較されます。競合が発生した場合(例えば、ローカルファイルとリポジトリ内の対応するファイルの同じ行が変更された)、マージアルゴリズムはローカル変更の保存を最大限優先します。

マージの例

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

File in the storage

ローカルの同じファイルはつぎのコードを含みます。

Local file

ストレージから更新するストレージから更新する」をクリックすると、ローカルファイルは変更されません。何故ならローカル変更のプライオリティはより高いからです。しかし、もしストレージ内のファイルに次のコードが含まれていた場合は

File in the storage

行 "x=0;" はローカルファイルに追加されますが、 "return(true);" はなお変更されません。

Updated local file

  • マージの最も重要な原則は、ローカルデータのプライオリティがより高いことです。アルゴリズムはローカル変更の保存を最優先します。
  • マージ処理は多くの競合タイプが発生します。このセクションでは、最も一般的なひとつの状況を考えました。マージアルゴリズムは複雑であり、ファイルの解析に包括的なアプローチを提供します。マージ機能についての更なる情報は、a book on Subversionを参照してください。