기고글 토론 "MQL5 Algo Forge 시작하기" - 페이지 2

 
Fernando Carreiro #:

아니요! '포크'와 '클론'은 같은 것이 아닙니다. 두 개념을 혼동하지 마세요.

서로 다른 개념이지만 다른 사람의 리포지토리에서 작업할 수 있는 제안된 메커니즘의 가능성을 아직 완전히 이해하지 못하신 것 같습니다. 하지만 먼저 실제로 테스트해보고 싶기 때문에 아직 확실하게 말할 수는 없습니다.
 
@Yuriy Bykov # 서로 다른 개념이지만 다른 사람의 리포지토리에서 작업할 수 있는 기능을 얻는 제안된 메커니즘의 가능성을 아직 완전히 이해하지 못했다고 생각합니다. 하지만 먼저 실제로 테스트해보고 싶기 때문에 아직 확실하게 말할 수는 없습니다.

완벽하게 이해합니다!

제가 "포크"가 아닌 "복제"를 사용하고 싶은 이유는 아닌 내가 만든 파생 작업으로 수정하거나 작업하고 싶기 때문이 아닙니다. 원본 작업과 향후 발생할 모든 업데이트를 "팔로우"하고 새로운 "커밋"이 있을 때 알림을 받고 "끌어와야 할" 필요가 있기 때문입니다. 이것이 바로 "복제"라는 기능이 존재하는 이유입니다.

즉, MetaQuotes는 "포크"를 홍보한 다음 "복제"를 통해 이를 끌어와서는 안 됩니다. "포크"를 홍보한 다음 "풀"을 홍보해야지 "복제"를 홍보해서는 안 됩니다. 서로 다른 기능을 혼동하고 있습니다.

편집: MetaQuotes가 "절름발이" Git 솔루션을 구현하고 이를 "기능"이라고 부르겠다고 고집한다면 결국 이전 SVN 방법보다 더 나빠질 것입니다.

 

제 말은 로컬 컴퓨터에서 리포지토리의 Git 복제를 할 때 원본 리포지토리에서 복제를 하든 새 포크에서 복제를 하든 파일 구성과 커밋 기록에 차이가 없다는 뜻입니다.

Git 문서에서는 원본 리포지토리에서 해당 리포지토리의 포크 복제본으로 업데이트를 가져오는 방법에 대해 설명합니다.이를 위해서는 최소한 명령줄 인터페이스를 통한 기본적인 리포지토리 기술이 필요합니다. 따라서 실제로 로컬 코드 클론을 업데이트하는 기능은 실제로 존재합니다. 하지만 메타에디터만 사용하여 이 로컬 복제본을 만들려면 사용자 프로필에서 원본 리포지토리의 포크를 만들어야 합니다. 포크가 생성된 후에만 메타에디터의 공유 프로젝트 목록에 해당 이름이 표시됩니다.

일반적으로 저는 이 방법을 별로 좋아하지 않습니다. 다른 사람의 리포지토리를 편집할 계획이 없다면 포크가 필요하지 않고 원본 리포지토리의 복제본으로 충분하기 때문입니다. 이 경우 포크는 리포지토리 목록에 추가되는 "추가" 항목입니다. 제가 알기로는 원래 리포지토리에서 가져온 코드를 적극적으로 변경할 계획이고 이러한 변경 사항이 포크에서 원래 리포지토리로 이전될 것으로 예상하지 않을 때 포크를 만듭니다(풀 리퀘스트를 통해 그러한 가능성이 있긴 하지만).

메타쿼츠 개발자의 입장에서 생각해 보면, 예를 들어 다른 리포지토리의 복제를 위해 "기타 공유 프로젝트"와 같은 고정된 이름의 별도 폴더를 추가할 수 있습니다. 그러나 이 옵션에는 단점이 있으므로 현재 솔루션보다 더 나쁠 수도 있습니다. 당장 더 나은 옵션이 떠오르지 않습니다. 아마도 메타에디터 기능이 향후에 확장되어 다른 솔루션이 제공될 것입니다.

업데이트의 기능을 테스트하고 싶습니다. 그래서 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 리포지토리의 포크를 만들어서 관심 목록과 즐겨찾기에 추가했습니다. 다음 커밋을 기다렸다가 포크를 업데이트할 수 있는 방법을 알아볼 수 있을 때까지 기다리겠습니다.

테스트 삼아 Heikin Ashi 출판물에 대한 설명을 마크다운 README 파일로 추가하고 리포지토리에 커밋했습니다.

변경 사항에 대한 알림을 받고 포크를 업데이트할 수 있는지 확인해 주세요.

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 개발자의 입장이 되어 다른 리포지토리의 복제를 위해 "기타 공유 프로젝트"와 같은 고정된 이름의 별도 폴더를 추가할 수 있습니다. 그러나 이 옵션에는 단점이 있으므로 현재 솔루션보다 더 나쁠 수도 있습니다. 당장 더 나은 옵션이 떠오르지 않습니다. 아마도 MetaEditor 기능이 향후 확장되어 다른 솔루션이 제공될 것입니다.

메타에디터는 JPG 이미지 파일이나 "인식할 수 없는" 것으로 간주되는 다른 파일 유형도 커밋할 수 없지만, 외부 Git 클라이언트를 사용하면 커밋할 수 있습니다.

PS! AlgoForge는 오픈 소스 ForgeJo 소프트웨어를 기반으로 합니다.

 
Fernando Carreiro #:

테스트 삼아 Heikin Ashi 출판물에 대한 설명을 마크다운 형식의 README 파일로 추가하고 리포지토리에 커밋했습니다.

이 변경 사항에 대한 알림을 받았는지, 그리고 포크를 업데이트할 수 있는지 확인해 주세요.

리포지토리 웹 인터페이스에서 이 내용을 확인했습니다:

나중에 포크를 업데이트해 보겠습니다.

 
Fernando Carreiro #:

테스트 삼아 Heikin Ashi 출판물에 대한 설명을 마크다운 형식의 README 파일로 추가하고 리포지토리에 커밋했습니다.

이 변경 사항에 대한 알림을 받았는지, 그리고 포크를 업데이트할 수 있는지 확인해 주세요.

먼저 로컬 포크 클론에 아직 최신 커밋이 없습니다:


Git 문서에 따라 원본 리포지토리에 연결합니다:

포크의 웹 인터페이스로 이동하여 다음을 확인합니다:


"동기화" 버튼을 클릭한 다음 MetaEditor에서 풀을 수행합니다:


보시다시피, 모든 커밋이 포크에 안전하게 저장되어 있고 로컬 컴퓨터에서 포크의 복제본을 끌어온 후에도 안전하게 저장되어 있습니다.

문서 페이지에는 콘솔 명령을 사용하여 동기화하는 다른 방법이 있지만 모든 커밋이 이미 동기화되어 있으므로 테스트하지 않았습니다.

나중에 메타에디터의 커밋 및 푸시 명령이 포크에 대해 어떻게 작동하는지 더 실험해 보겠습니다. 원래 리포지토리로 편집 내용을 보내려고 시도할지 궁금합니다.

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 문서에 따라 원본 리포지토리를 연결합니다:

포크의 웹 인터페이스로 이동하여 다음을 확인합니다:

"동기화" 버튼을 클릭한 다음 메타에디터에서 풀을 수행합니다:

보시다시피, 모든 커밋이 포크에 안전하게 저장되어 있고 로컬 컴퓨터에서 포크의 복제본을 끌어온 후에도 안전하게 저장되어 있습니다.

문서 페이지에는 콘솔 명령을 사용하여 동기화하는 다른 방법이 나와 있지만 모든 커밋이 이미 동기화되었기 때문에 테스트하지는 않았습니다.

하지만 "복제"와 "포크"는 동일하지 않으며, MetaQuotes가 채택한 방법은 프로젝트를 동기화하기 위해 메타에디터 외부에서 추가 개입이 필요하다는 제 요점을 증명해 주셨습니다.

"포크"를 위해 AlgoForge 서버에 추가 저장 공간이 필요한 것은 말할 것도 없고, "클론"은 추가 저장 공간이나 추가 단계가 필요하지 않습니다.

저는 MetaQuotes 구현이 효과적으로 사용하기에는 너무 "결함이 있다"고 생각하며 외부 Git 클라이언트 또는 VSCode(AlgoForge에서 문제 없이 잘 작동)를 계속 사용할 것입니다.

 
Fernando Carreiro #:
저는 MetaQuotes 구현이 너무 "결함이 있어" 효과적으로 사용하기 어렵다고 생각하며 외부 Git 클라이언트를 계속 사용하거나 (AlgoForge와 문제 없이 잘 작동하는) VSCode를 사용할 것입니다.

외부 Git 클라이언트 사용자 커뮤니티에 오신 것을 환영합니다!

 
Fernando Carreiro #:

MetaQuotes 구현이 너무 '결함'이 있어 효과적으로 사용하기 어렵다고 생각하여 외부 Git 클라이언트 또는 VSCode(AlgoForge와 문제 없이 잘 작동)를 계속 사용할 것입니다.

안타깝게도 현재로서는 실제로 그렇습니다. 저 역시 지금은 외부 클라이언트를 사용하는 것을 선호합니다. 하지만 지난 5개월 동안 메타에디터에 추가된 기능을 비교해 보면 눈에 띄는 발전이 있었습니다. 이전에는 새 리포지토리로 작업할 수 있는 도구가 전혀 없었는데, 이제는 최소한 이렇게 축소된 버전이 생겼습니다.