記事「MQL5 Algo Forgeのご紹介」についてのディスカッション - ページ 2

 
Fernando Carreiro #:

フォーク」と「クローン」は同じではありません。この2つの概念を混同しないでください

これらは異なる概念ですが、他人のリポジトリで作業する能力を得るという提案されたメカニズムの可能性を、あなたはまだ完全に理解していないと思います。しかし、まずは実際にテストしてみたいので、まだはっきりとは言えません。
 
@Yuriy Bykov # 両者は異なるコンセプトですが、他人のリポジトリと連携する能力を得るという提案されたメカニズムの可能性を、まだ十分に理解していないと思います。でも、まずは実際にテストしてみたいので、まだ何とも言えません。

よくわかりました!

fork」ではなく「clone」を使いたい理由は、以下の通りです。 それは オリジナルの作品と今後発生するアップデートを "フォロー "し、"プル "する必要がある新しい "コミット "があったときに通知を受け取りたいからです。それが「クローン」という機能の存在理由である。

つまり、MetaQuotesは "フォーク "を推進し、それを "クローン "で取り込むべきではありません。クローン」ではなく、「フォーク」、そして「プル」であるべきなのだ。彼らは異なる機能を混同しているのだ。

EDIT: MetaQuotesが「不自由な」Gitソリューションの実装に固執し、それを「機能」と呼ぶのであれば、それは以前のSVN方式よりも悪い結果になるでしょう。

 

私が言いたかったのは、ローカルマシンでリポジトリの git クローンを作成する場合、元のリポジトリからクローンするのと新しいフォークからクローンするのとでは (ファイル構成やコミット履歴に) 違いはないということです。

Git のドキュメントには、元のリポジトリからそのリポジトリのフォークのクローンに更新を取り込む方法が書かれて います。これには、コマンドラインインターフェイスを使った少なくとも基本的なリポジトリのスキルが必要です。ですから、 実際、コードのローカルクローンを更新する機能は実際にあります。しかし、MetaEditorだけを使ってこのローカルクローンを作成するには、ユーザープロファイルに元のリポジトリのフォークを作成しなければなりません。フォークが作成されて初めて、その名前がMetaEditorの共有プロジェクトのリストに表示されます。

一般的に、私はこの方法があまり好きではありません。結局のところ、他人のリポジトリを編集する予定がなければ、フォークは必要なく、元のリポジトリのクローンで十分です。この場合のフォークとは、リポジトリのリストに「余分な」項目を追加することです。私が理解しているように、私たちがフォークを作成するのは、元のリポジトリから取り出したコードに積極的に変更を加えようと計画しているときであり、これらの変更がフォークから元のリポジトリに転送されるとは考えていません(Pull Requestを通じてそのような可能性はありますが)。

私たち自身をMetaQuotesの開発者の立場に置き換えると、例えば、他のリポジトリのクローン用に、"Other Shared Projects "のような固定の名前を持つ別のフォルダを追加することができます。しかし、このオプションには独自の欠点があり、おそらく現在の解決策よりもさらに悪いでしょう。もっと良い選択肢はすぐに思いつきません。おそらく将来MetaEditorの機能が拡張され、他の解決策が提示されるでしょう。

私はアップデートの機能をテストしたい。そのため、あなたのFMIC リポジトリのフォークを作成し、ウォッチリストとお気に入りに追加しました。あなたの次のコミットを待って、フォークのアップデートを試せるよう、その方法を探します。

Fork a repository - GitHub Docs
Fork a repository - GitHub Docs
  • docs.github.com
A fork is a new repository that shares code and visibility settings with the original “upstream” repository.
 
@Yuriy Bykov # アップデートの機能をテストしたいと思います。それがあなたのFMIC リポジトリのフォークを作り、ウォッチリストとお気に入りに追加した理由です。フォークのアップデートを試せるように、あなたの次のコミットを待ちます。

テストとして、MarkdownのREADMEファイルとしてHeikin Ashi 出版の説明を追加し、リポジトリにコミットしました。

この変更が通知され、フォークを更新できるかどうか確認してください。

Added a description of the Heikin Ashi publication, as a Markdown README file. · a302233fbc
Added a description of the Heikin Ashi publication, as a Markdown README file. · a302233fbc
  • fmic
  • forge.mql5.io
FMIC - MQL5 & MQL4 CodeBase publications by Fernando Carreiro (FMIC)
 
@Yuriy Bykov # MetaQuotesの開発者の立場になって考えてみると、例えば、他のリポジトリのクローン用に、"Other Shared Projects "のような固定の名前を持つ別のフォルダを追加することができます。しかし、このオプションには独自の欠点があり、おそらく現在の解決策よりもさらに悪いでしょう。もっと良い選択肢はすぐに思いつきません。おそらく将来MetaEditorの機能が拡張され、他の解決策が提示されるでしょう。

MetaEditorは JPG画像ファイルやその他の「認識できない」と判断されたファイル形式のコミットもできませんが、外部のGitクライアントを使ってコミットすることはできます。

追記AlgoForgeは オープンソースのForgeJoを ベースにしています。

 
Fernando Carreiro #:

テストとして、Markdown形式のREADMEファイルとしてHeikin Ashi 出版の説明を追加し、リポジトリにコミットした。

この変更の通知を受け取ったかどうか、またフォークを更新できるかどうか確認してください。

リポジトリのウェブインターフェイスでこれを見ました:

後でフォークを更新してみます。

 
Fernando Carreiro #:

テストとして、Markdown形式のREADMEファイルとしてHeikin Ashi 出版の説明を追加し、リポジトリにコミットした。

この変更の通知を受け取ったかどうか、またフォークを更新できるかどうか確認してください。

まず最初に、私のローカルフォーククローンにはまだ最新のコミットがありません:


Gitのドキュメントによると、オリジナルのリポジトリに接続しています:

フォークのウェブインターフェイスに行くと、このようになっています:


Sync」ボタンをクリックし、MetaEditorでPullを実行します:


ご覧のとおり、あなたのコミットはすべて安全にフォークされ、その後私のローカルコンピューター上のフォークのクローンでPullされました。

この ドキュメントのページには、コンソールコマンドを使った他の同期方法も載っているが、すべてのコミットがすでに同期されているので、まだ試していない。

MetaEditorのCommitコマンドとPushコマンドがフォークに対してどのように動作するか、後でもっと実験してみるつもりだ。元のリポジトリにも編集を送ろうとするのかな。

Syncing a fork - GitHub Docs
Syncing a fork - GitHub Docs
  • docs.github.com
Sync a fork of a repository to keep it up-to-date with the upstream repository.
 
@Yuriy Bykov #:

まず最初に、私のローカルフォーククローンにはまだ最新のコミットが入っていない:

Gitのドキュメントによると、オリジナルのリポジトリに接続しています:

フォークのウェブインターフェイスにアクセスすると、このように表示されます:

Sync "ボタンをクリックし、MetaEditorでPullを行う:

ご覧の通り、あなたのコミットはすべて安全にフォークされ、その後、私のローカルコンピューター上のフォークのクローンでPullされました。

ドキュメントのこの ページには、コンソールコマンドを使って同期する他の方法も載っていますが、すべてのコミットがすでに同期されているので、私は試していません。

しかし、"クローン "と "フォーク "は同じではなく、MetaQuotesが採用した方法は、プロジェクトを同期させるためにMetaEditorの外で余計な介入が必要であることを証明しています。

クローン」には余分なストレージも余分な手順も必要ありませんが、「フォーク」にはAlgoForgeサーバーの余分なストレージスペースが必要なことは言うまでもありません。

、私はMetaQuotesの実装は効果的に使用するにはあまりにも「欠陥がある」と考えており、外部のGitクライアントを使用するか、VSCode(AlgoForgeでは問題なく動作します)を使用し続けるつもりです。

 
Fernando Carreiro #:
私は、MetaQuotesの実装は効果的に使用するにはあまりにも「欠陥がある」と考えており、外部のGitクライアントを使用するか、VSCode(AlgoForgeでは問題なく動作します)を使用し続けるつもりです。

外部Gitクライアントユーザーのコミュニティへようこそ!😁。

 
Fernando Carreiro #:

私は、MetaQuotesの実装は「欠陥」がありすぎて効果的に使えないと思うので、外部のGitクライアントかVSCode(AlgoForgeでは問題なく動作する)を使い続けるつもりです。

残念ながら、今のところはそうです。私も今のところは外部クライアントを使いたい。しかし、この5ヶ月でMetaEditorに追加されたものを比較すると、それは顕著な進歩です。ただ、以前は新しいリポジトリで作業するためのツールがまったくなかったのに、今は少なくともそのような縮小版がある。