MetaEditorヘルプ

ストレージの扱い

ストレージの扱い

MQL5 ストレージの操作は、クライアントターミナルの MQL4/MQL5 フォルダを操作するだけです。MQL5 ストレージのすべての操作は、「ナビゲータ」ウィンドウのコンテキストメニューとソースコードエディターのコンテキストメニューを通して行われます。

MQL5 ストレージのメニュー

メニューコマンドを使用して、MQL5 ストレージに関するつぎのアクションを実行できます。

  • チェックアウト リポジトリからのチェックアウト
  • 更新 リポジトリの更新
  • コミット リポジトリ更新のコミット
  • 追加 リポジトリへのファイル/フォルダの追加
  • 削除 リポジトリからファイル/フォルダを削除
  • キャンセル ローカルコピーデータへの変更をキャンセル
  • 表示ログ リポジトリデータの変更ログを表示
  • 変更の表示 作業中のコピーファイルへの変更を表示

入門

ストレージには、ファイル構成情報も含まれています。ストレージに接続時に、MetaEditorユーザはそれらのファイルを読み書きします。ユーザは常にローカルコピーで作業し、必要ならば、変更をリポジトリに送ります。

それぞれの変更トランザクションはストレージジャーナルに記録され、あとで、いつだれがそのファイルを変更したか見ることができます。それぞれの変更トランザクションに特定のリビジョン番号が対応します。リビジョンは現時点のストレージの状態を示しています。変更を送信する度にストレージに新しいリビジョン(その数は増加)が生成されます。リビジョン番号に基づいてストレージは状態を判断しそれらをマージします。ユーザはローカルコピーを選択したリビジョンに更新したり、あるいは任意のリビジョンに変更もできます。

MQL5 ストレージで作業を開始するためには、ローカルフォルダとストレージの適切なフォルダとを関連付ける必要があります。これには二つの方法があります。

  • もし、リポジトリを生成した直後なら、それは空です。ディレクトリを追加する必要があります。その後で、適切なディレクトリをリポジトリのディレクトリ(\MQL4 または \MQL5 への相対パスに同じ)に作成します。これはルートディレクトリです。操作は全てこのディレクトリで行われます。
  • ストレージに既にデータがある場合は、それらをローカルディレクトリにダウンロードします。例えば、ストレージに \Personal\account_name\MQL5\Experts フォルダがあります。その中に格納されているデータをローカルディレクトリ \MQL5\Experts へダウンロードできます。

階層のトップディレクトリ、つまりストレージに関連付けられたディレクトリはルートディレクトリです。リポジトリ作業はこのディレクトリの範囲で行います。\MQL4 または \MQL5 のトップディレクトリをストレージに関連付ける必要はありません。\MQL5 または \MQL4 のサブディレクトリがルートとなり得ます。複数のルートディレクトリを持つことができます。例えば、\MQL5\Experts や \MQL5\Images などです。

  • MQL5 ストレージでは、つぎに示すファイルタイプ:mq4、mq5、mqh、cpp、h、bmp、wav のみ扱えます。他のファイルタイプはリポジトリに追加できません。
  • 64 MB よりも大きなファイルはストレージに追加できません。

リポジトリへ追加

フォルダまたはファイルをリポジトリに追加するには、選択後「ストレージに追加するストレージに追加する」コマンドを使用します。すると追加すべきフォルダとファイル一覧が示したダイアログボックスを表示します。

ファイルはローカルで追加されます。変更をリポジトリに送信するには、「ストレージにコミットするストレージにコミットする」コマンドを使用します。

Add a folder to the storage

必要なフォルダとフォルダをチェックし「OK」をクリックします。

  • ストレージ操作の原理原則として、ファイルが配置されているフォルダがないファイルを追加できません。フォルダがリポジトリに追加されていないと、その中にあるファイルは追加できません。
  • \MQL4 または \MQL5 ルートディレクトリにあるファイルは追加できません。
  • リポジトリに関連付けられたフォルダの中の子ディレクトリのみ追加できます。親フォルダを追加せずにその親フォルダより下位のフォルダを追加できません。

追加されたファイルやフォルダにはAdded to repositoryマークが付きます。

Added Files and Folders

つぎに、これらの変更はリポジトリへ送信しなければなりません。追加されたフォルダ/ファイルを選択し、「ストレージにコミットするストレージにコミットする」コマンドを使用します。

Committing to the Repository

このダイアログでは、リポジトリへ送信すべき変更を選択します。変更をコミットするときコメントを追加できます。詳細なコメントは、将来的に変更の解析を促進します。

リポジトリ内の現在の変更をコミットすると、対応するフォルダーやファイルにNo changesマークがつきます。これは、ローカルコピーデータが、最後にコミット/更新したときのストレージデータと違いがないことを意味します。

  • 追加しようとするフォルダが既にストレージに存在するときは、エラー "Folder already exists, update it from storage" が表示されます。そのようなフォルダには、「ストレージから更新するストレージから更新する」を使用します。そうすると、ストレージと連携し、リポジトリからのデータが追加されます。そうしたら、「ストレージにコミットするストレージにコミットする」コマンドを使用して変更をリポジトリへ送信できます。
  • ファイル容量が1MBを超える場合、ストレージへの変更送信ダイアログのチェックが自動的に外れます。ストレージシステムへの過負荷を避けるため、容量の大きなファイルは慎重に扱う必要があります。  

Checkout

ローカルフォルダをリポジトリの同じフォルダに連携するもう一つの方法は、コマンド「ストレージからチェックアウトするストレージからチェックアウトする」です。しかしながら、この場合はリポジトリの同じフォルダの内容がローカルフォルダにダウンロードされます。

Getting Data from the Storage

  • 個々のファイルをストレージから取得できません。\MQL4 または \MQL5 ルートディレクトリに配置された一つのフォルダ、または \MQL4 または \MQL5 ルートディレクトリ全体のみダウンロードできます。
  • もし選択したフォルダがリポジトリの同じパスに存在しないときは、コマンド「ストレージからチェックアウトする ストレージからチェックアウトする」はエラー "Target path does not exist" を返します。この場合、フォルダの追加をコマンド「Add to repositoryストレージに追加する」を使用してリポジトリへ追加します。
  • ローカルフォルダにデータがあるときは、チェックアウト中にリポジトリから得られたデータがそれに追加されます。新しいファイルは追加されます。名前とパスが等しいファイルはデータマージが試みられます。

ストレージからデータを更新

リポジトリからデータの最新版を得るには、フォルダまたはファイルを選択し、「ストレージから更新するストレージから更新する」を使用します。

Data Update

表示されたダイアログボックスには更新リストがあります。

ローカルディレクトリにデータがある場合、更新中にリポジトリから得られたデータで補足されます。新しいファイルは追加されます。名前とパスが等しいファイルはデータマージが試みられます。

リビジョンへの更新

MQL5 ストレージはユーザがストレージへコミットしたすべての変更履歴を保管します。各々の変更コミットには新しいリビジョン(ある時のストレージの状態)が付きます。複数のユーザによるストレージを介したデータへの並行作業中、他のユーザによる変更を定期的に受け取る必要があります。コマンド「リビジョンへ更新するリビジョンへ更新する」はリポジトリからのデータでローカルコピーを段階的に更新できます。

例えば、ローカルコピーデータの最後の更新から3つの新しいリビジョンがストレージに存在するとします。先ず、最初のリビジョンにアップグレードし、ついで第2、第3のリビジョンにアップグレードできます。

特定のリビジョンに更新するには、ファイルまたはフォルダを選択し、ストレージログを「ストレージログを表示するストレージログを表示する」を使用します。

リビジョンへの更新

開いたウィンドウで、欲しいリビジョンを選び、「リビジョンへ更新するリビジョンへ更新する」コマンドを使用します。

  • ローカルコピーデータはより高い(より最新)にのみ更新できます。
  • リポジトリから得られたデータは、ローカルコピーに追加されます。名前とパスが等しいファイルはデータマージが試みられます。リビジョンに追加されたファイルは、ローカルコピーに追加されます。リビジョンから削除されたファイルは、ローカルコピーから削除されます。

リビジョンへ戻す

MQL5 ストレージはユーザがストレージへコミットしたすべての変更履歴を保管します。各々の変更コミットには新しいリビジョン(ある時のストレージの状態)が付きます。いつでもファイルやフォルダを以前の状態へ戻すことができます。

特定のリビジョンへ戻すには、ファイルまたはフォルダを選択し、ストレージログを「ストレージログを表示するストレージログを表示する」を使用します。

リビジョンへ戻す

開いたウィンドウで、要求するリビジョンを選択して「この改訂に戻すこの改訂に戻す」を使用します。

リビジョンへ戻すと、選択したファイル/フォルダは完全に指定した状態に戻ります。早期でも最新でも両方のリビジョンへ戻すことができます。

ストレージへの変更のコミット

冒頭で説明の通り、ユーザはローカルコピーでのみ作業できます。ローカル変更をリポジトリに反映するには、「ストレージにコミットするストレージにコミットする」コマンドを使用します。ローカルファイルとフォルダは変更されるとアイコンChangedが付きます。

変更をコミットする前に、ファイルを選択して表示バージョンの違いバージョンの違い」をコンテキストメニューから使用します。

Committing to the Repository

コミットダイアログでリポジトリへコミットすべき変更したファイルとフォルダを選択します。変更をコミットするときコメントを追加できます。詳細なコメントは、将来的に変更の解析を促進します。

  • ローカル変更は優先度が高く、必ずストレージへ追加されます。
  • 変更をコミットするとき、もしストレージのリビジョン番号がローカルリビジョンよりも高い(他のソースから修正されてローカルデータがリポジトリから更新されていない)場合は、エラー "Out of date" が返されます。この場合、先ず「ストレージから更新するストレージから更新する」コマンドで「マージデータ」を使用し、その後、ストレージにコミットするストレージにコミットする」コマンドを使用します。
  • bmp と wav ファイルの更新は注意してください。これらのファイルをマージするときは新しいリビジョンに完全に置き換わります。つまり、更新でそれらのファイルはリポジトリのファイルに置き換わります。このような状態を避けるには、これらのファイルを分離してコピー保存し、ストレージから更新するストレージから更新する」コマンドを使用してローカルリビジョン番号を上げておいてから、コピーしたファイルを戻してから変更をストレージへコミットします。

Delete

ファイルまたはフォルダを削除したい場合は、コマンド「ストレージから削除するストレージから削除する」を使用します。フォルダ/ファイルはローカルコピーデータから削除されます。ファイルやフォルダをリポジトリから削除するには、「ストレージにコミットするストレージにコミットする」コマンドを使用してこれらの変更をコミットします。

  • ファイルやフォルダの削除を「Delete 削除」(「ナビゲータ」ウィンドウ)で行っても MQL5 ストレージには何ら影響しません。つぎの更新で、削除データはストレージから復元されます。ストレージに連携された
  • ルートディレクトリは削除できません。

変更を戻す

もし現在のローカルコピーデータへの変更を戻したい場合は、「この改訂版の変更を元に戻す変更を元に戻す」コマンドを必要なファイルまたはフォルダに実行します。ファイル/フォルダは、以前にリポジトリと同期した状態に戻ります。

変更を戻すとき、初期のローカルリビジョンが復元され、リポジトリのカレントリビジョンではありません。

変更のログ

ストレージにコミットするストレージにコミットする」コマンドを使用したリポジトリへのそれぞれの変更コミットはログされます。ログはプロジェクトにおける変更履歴の容易な解析を支援します。ファイル/フォルダの変更ログを見るには、「ストレージログを表示するストレージログを表示する」を使用します。

View logs

上部は変更リストを表示しています。

  • リビジョン — ユニークなコミット番号
  • 作者 — ユーザの名前(MQL5.community アカウントのログイン名と同じ)で変更した人
  • 日付 — 変更がコミットされた日付で UTC フォーム。
  • コメント — 更新へのコメント

コンテキストメニューのコマンド「リビジョンへ更新するリビジョンへ更新する」を使用し、ローカルコピーデータを選択したリビジョンへ更新できます。

ウィンドウの下部は、選択したリビジョンの修正されたファイルリストを表示しています。アイコンは変更のタイプを示しています。

  • Added — ファイルは追加されました。
  • Changed — ファイルは変更されました。
  • Deleted — ファイルは削除されました。

修正ファイルリストでコンテキストメニューを使用して、変更を解析できます。