Discusión sobre el artículo "Cómo empezar a trabajar con MQL5 Algo Forge" - página 2

 
Fernando Carreiro #:

No, un "tenedor" y un "clon" no son lo mismo. Por favor, no confunda los dos conceptos

Son conceptos diferentes, pero sigo pensando que no comprendes del todo las posibilidades del mecanismo propuesto para obtener la capacidad de trabajar con el repositorio de otra persona. Pero aún no puedo asegurarlo, ya que primero quiero probarlo en la práctica.
 
@Yuriy Bykov # Son conceptos diferentes, pero sigo pensando que no comprendes del todo las posibilidades del mecanismo propuesto para obtener la capacidad de trabajar con el repositorio de otra persona. Pero aún no puedo asegurarlo, ya que primero quiero probarlo en la práctica.

¡Lo entiendo perfectamente!

La razón por la que quiero usar "clone" y no "fork", es no Es porque quiero "seguir" el trabajo original y las futuras actualizaciones que se produzcan, y ser notificado cuando haya nuevos "commits" que luego tenga que "tirar". Esa es la razón de la existencia de la funcionalidad llamada "clon".

Explicado esto, MetaQuotes no debería estar promoviendo un "fork" y luego tirando de él con "clone". Debería ser un "fork" y luego un "pull", no un "clone". Están mezclando las diferentes funcionalidades.

EDIT: Si MetaQuotes insiste en implementar una solución Git "lisiada", y llamarlo una "característica", entonces terminará peor que el método SVN anterior.

 

Lo que quería decir es que cuando se hace un clon git de un repositorio en la máquina local, no hay diferencia (en la composición de archivos y el historial de confirmaciones) entre clonar desde el repositorio original o clonar desde un fork fresco.

La documentación de Git describe cómo puede obtener actualizaciones del repositorio original en un clon de su bifurcación de ese repositorio.Esto requiere al menos conocimientos básicos sobre repositorios a través de una interfaz de línea de comandos. Así que, de hecho, la capacidad de actualizar un clon local de código existe. Sin embargo, para crear este clon local utilizando sólo MetaEditor, debe crear un fork del repositorio original en su perfil de usuario. Sólo después de crear el fork, su nombre aparecerá en la lista de Proyectos Compartidos en el MetaEditor.

En general, no me gusta mucho este enfoque. Después de todo, si no planeamos hacer ediciones en el repositorio de otra persona, no necesitamos un fork, un clon del repositorio original es suficiente. Un fork en este caso es un elemento adicional "extra" en la lista de nuestros repositorios. Tal y como yo lo entiendo, creamos un fork cuando planeamos hacer cambios activamente en el código tomado del repositorio original y no esperamos que estos cambios sean transferidos de nuestro fork al repositorio original (aunque existe esa posibilidad vía Pull Request).

Poniéndonos en el lugar de los desarrolladores de MetaQuotes, podríamos, por ejemplo, añadir una carpeta separada con un nombre fijo, como "Otros proyectos compartidos", para los clones de otros repositorios. Pero esta opción tiene sus propias desventajas, por lo que probablemente sea incluso peor que la solución actual. No se me ocurren mejores opciones de inmediato. Tal vez la funcionalidad MetaEditor se ampliará en el futuro y se nos presentará alguna otra solución.

Me gustaría probar la funcionalidad de la actualización. Por eso he hecho un fork de tu repositorio FMIC, lo he añadido a mi lista de seguimiento y favoritos. Esperaré a tu próximo commit para ver cómo puedo enterarme y así intentar actualizar el fork.

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 # Me gustaría probar la funcionalidad de la actualización. Por eso he hecho un fork de tu repositorio FMIC, lo he añadido a mi lista de seguimiento y favoritos. Esperaré a tu próximo commit para ver cómo puedo enterarme y así intentar actualizar el fork.

Como prueba, he añadido una descripción de la publicación Heikin Ashi, como un archivo Markdown README, y lo he confirmado al repositorio.

Por favor, vea si se le notifica el cambio y si es capaz de actualizar el fork.

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 # Poniéndonos en el lugar de los desarrolladores de MetaQuotes, podríamos, por ejemplo, añadir una carpeta separada con un nombre fijo, como "Otros proyectos compartidos", para los clones de otros repositorios. Pero esta opción tiene sus propias desventajas, por lo que probablemente sea incluso peor que la solución actual. No se me ocurren mejores opciones de inmediato. Tal vez la funcionalidad del MetaEditor se ampliará en el futuro y se nos presentará alguna otra solución.

MetaEditor también es incapaz de confirmar archivos de imagen JPG o cualquier otro tipo de archivo que considere "irreconocible", pero soy capaz de confirmarlos utilizando un cliente Git externo.

PD AlgoForge se basa en el software de código abierto ForgeJo.

 
Fernando Carreiro #:

Como prueba, he añadido una descripción de la publicación Heikin Ashi como un archivo README en formato Markdown y lo he enviado al repositorio.

Por favor, compruebe si ha recibido la notificación de este cambio y si se puede actualizar el tenedor.

He visto esto en la interfaz web del repositorio:

Intentaré actualizar el fork más tarde

 
Fernando Carreiro #:

Como prueba, he añadido una descripción de la publicación Heikin Ashi como un archivo README en formato Markdown y lo he enviado al repositorio.

Por favor, compruebe si ha recibido la notificación de este cambio y si se puede actualizar el tenedor.

En primer lugar, mi clon fork local aún no tiene el último commit:


Conectando el repositorio original, según la documentación de Git:

Voy a la interfaz web del fork y veo esto:


Hago clic en el botón "Sync" y luego hago un Pull en MetaEditor:


Como pueden ver, todos sus commits estaban a salvo en el fork y luego de Pull en el clon del fork en mi computadora local.

En esta página de documentación hay otras formas de sincronizar usando comandos de consola, pero no las he probado, ya que todos los commits ya están sincronizados.

Voy a experimentar más tarde para ver cómo el comando Commit y Push en MetaEditor se comportará para el tenedor. Me pregunto si va a tratar de enviar las ediciones al repositorio original también.

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 #:

En primer lugar, mi clon de la horquilla local no tiene el último commit todavía:

Conectando el repositorio original, según la documentación de Git:

Voy a la interfaz web del fork y veo esto:

Hago clic en el botón "Sync" y luego hago un Pull en MetaEditor:

Como se puede ver, todas sus confirmaciones fueron de forma segura en el tenedor y, a continuación, después de Pull en el clon de la bifurcación en mi equipo local.

En esta página de la documentación hay otras formas de sincronizar usando comandos de consola, pero no las he probado, porque todos los commits ya están sincronizados.

Todo esto está muy bien, pero has demostrado mi punto de que un "Clon" y un "Fork" no son lo mismo, y el método que MetaQuotes ha adoptado requiere una intervención extra fuera del MetaEditor sólo para poder sincronizar el proyecto.

Por no hablar de que requiere espacio de almacenamiento adicional en los servidores AlgoForge, para los "forks", mientras que un "clon" no requiere almacenamiento adicional ni pasos adicionales.

Considero que las implementaciones MetaQuotes demasiado "defectuoso" para un uso eficaz y seguirá utilizando un cliente Git externo, o el uso de VSCode (que funciona muy bien con AlgoForge sin problemas).

 
Fernando Carreiro #:
Considero las implementaciones de MetaQuotes demasiado "defectuosas" para un uso efectivo y seguiré usando un cliente Git externo, o usando VSCode (que funciona perfectamente con AlgoForge sin problemas).

Estamos encantados de darte la bienvenida a nuestra comunidad de usuarios de clientes Git externos!😁

 
Fernando Carreiro #:

Encuentro la implementación de MetaQuotes demasiado "defectuosa" para usarla eficazmente y seguiré usando un cliente Git externo o VSCode (que funciona bien con AlgoForge sin problemas).

Desafortunadamente, este es el caso por ahora. Yo también prefiero usar un cliente externo por ahora. Pero si se compara lo que se ha añadido a MetaEditor en los últimos 5 meses, es un progreso notable. Es sólo que antes no había herramientas para trabajar con el nuevo repositorio en absoluto, y ahora hay al menos una versión tan reducida.