Ajuda para o MetaEditor → Projetos e MQL5 Algo Forge → Trabalhando com o repositório

Uso do MQL5 Algo Forge

O MQL5 Algo Forge é um sistema de controle de versão e armazenamento baseado em Git, integrado ao MetaEditor. Ele funciona principalmente com a pasta MQL5, que contém todos os algoritmos, e com a pasta especial Shared Projects, onde ficam armazenados os projetos públicos.

O Git é um sistema de controle de versão que mantém o histórico das alterações feitas nos arquivos. Ele ajuda a evitar a perda de alterações importantes, permite retornar facilmente a uma versão anterior, desenvolver em branches separadas e integrar as contribuições de vários desenvolvedores em um único projeto. Mais informações sobre os fundamentos do Git estão disponíveis na documentação oficial.

Um commit registra o estado dos arquivos em um determinado momento. Cada commit possui um identificador exclusivo e uma mensagem que descreve as alterações realizadas. O histórico do projeto é composto por commits, branches e relações entre eles.

Você pode consultar quando as alterações foram feitas, quem as realizou, quais arquivos foram modificados e o que foi incluído em cada commit. Também é possível comparar versões dos arquivos, restaurar estados anteriores, alternar entre branches e, quando necessário, desfazer alterações específicas.

Ao desenvolver um projeto compartilhado, é recomendável obter regularmente as alterações do repositório remoto. Isso permite que o Git faça automaticamente o merge das alterações que não entram em conflito com a sua cópia local. No entanto, se dois usuários modificarem a mesma linha de código ou fizerem alterações incompatíveis entre si, poderá ocorrer um conflito. Nesse caso, o conflito deverá ser resolvido antes de criar um novo commit ou enviar as alterações ao repositório remoto.

Fluxo principal de uso:

  1. Obter alterações do repositório remoto: antes de começar a editar, a cópia local deve estar atualizada com a versão mais recente do projeto no MQL5 Algo Forge.
  2. Alterar arquivos: edite o código, adicione novos arquivos, corrija erros ou implemente novas funcionalidades. O MetaEditor detectará automaticamente as alterações realizadas.
  3. Fazer commit das alterações: crie um commit para registrar as alterações no histórico do projeto. Para facilitar o uso, o MetaEditor envia automaticamente o commit criado ao repositório remoto.

Primeiros passos #

Antes de começar, é necessário fazer login no MetaEditor com sua conta MQL5.community. Você pode começar a usar o Git no diretório selecionado das seguintes formas:

  • Adicionar um arquivo ou uma pasta ao Git usando o comando "Adicionar pasta/arquivo ao Git". O comando está disponível para arquivos e pastas dentro do diretório MQL5, mas não dentro de Shared Projects. Depois de adicionar o arquivo ou a pasta, no repositório MQL5 será criado um novo commit.
  • Criar um novo projeto em Shared Projects. O novo projeto aparecerá na sua conta no site do MQL5 Algo Forge como um repositório separado.
  • Criar um fork de um projeto público no site do MQL5 Algo Forge e depois cloná-lo no MetaEditor. Todos os arquivos do projeto aparecerão na pasta Shared Projects.

O Git é uma ferramenta de linha de comando, mas o MetaEditor oferece uma interface gráfica prática para executar as principais operações. Os comandos Git podem ser acessados em vários locais:

1. Clique com o botão direito do mouse em um arquivo ou uma pasta na janela Navegador.

Menu de contexto do arquivo/pasta

2. Clique com o botão direito do mouse na guia de um arquivo aberto.

Menu de contexto da guia

3. Clique com o botão direito do mouse na área do editor de código.

Menu de contexto do editor de código

4. No menu superior, selecione Git.

Git no menu superior

Esses comandos executam operações do Git e interagem com o MQL5 Algo Forge.

  • Obter atualizações do Git: obtém as alterações mais recentes do repositório remoto. O Git baixa os novos commits do servidor e faz o merge deles com a versão local do projeto.
  • Enviar alterações para o Git: envia as alterações locais ao repositório remoto. O MetaEditor executa automaticamente um Git Push após cada Git Commit, mas, se necessário, o comando pode ser executado manualmente, por exemplo, caso o envio automático falhe.
  • Fazer commit das alterações no Git: registra o estado atual do projeto no histórico de versões. O MetaEditor envia automaticamente o commit criado ao repositório remoto. O commit funciona como um ponto de referência ao qual você pode retornar posteriormente.
  • Adicionar arquivo/pasta ao Git: adiciona um arquivo ou uma pasta à lista de alterações preparadas para commit. Em seguida, o MetaEditor cria automaticamente um commit e o envia ao repositório remoto.
  • Ver diferenças no Git: exibe as alterações nos arquivos preparados para commit. O painel de comparação mostra as linhas adicionadas, removidas e modificadas.
  • Descartar alterações no Git: remove as alterações preparadas que ainda não foram registradas em um commit.
  • Ver histórico do Git: exibe todos os commits com a respectiva data, autor e mensagem. Isso permite acompanhar quem alterou o quê e quando.
  • Branch do Git: abre o menu para criar uma nova branch e alternar entre branches. Cada branch representa uma linha de desenvolvimento independente, que pode ser usada para testes e depois excluída ou incorporada à branch principal.

Adição de arquivos #

Para adicionar ao repositório MQL5 um arquivo ou uma pasta armazenados localmente, clique com o botão direito do mouse sobre o item e selecione "Adicionar arquivo/pasta ao Git". Será aberta uma janela com a lista dos arquivos que serão adicionados.

  • O MetaEditor seleciona automaticamente os arquivos adequados para inclusão no Git e exclui, por exemplo, arquivos binários.
  • O Git rastreia arquivos, não pastas. Portanto, ao adicionar uma pasta ao repositório, o Git adiciona os arquivos contidos nela.
  • Não é possível adicionar uma pasta vazia, pois ela não contém arquivos que possam ser rastreados.

Adição de uma pasta ao Git

Selecione os arquivos desejados e clique em "OK". O MetaEditor os adicionará a um novo commit e enviará imediatamente esse commit ao repositório remoto.

Os arquivos adicionados e rastreados são identificados pelo ícone especial "Sem alterações".

Arquivos e pastas adicionados

Criação de branches #

Uma branch representa uma linha de desenvolvimento independente na qual você pode implementar novas funcionalidades ou corrigir erros com segurança, sem afetar a versão estável do projeto. Depois de concluir o desenvolvimento e os testes, as alterações podem ser incorporadas à branch principal.

Clique com o botão direito do mouse em um arquivo ou uma pasta, selecione "Branch do Git" e depois "Nova". Na janela exibida, informe o nome da branch e clique em "OK".

Criação de uma nova branch

Depois disso, você poderá alternar para a nova branch e continuar o desenvolvimento nela.

Alternância entre branches #

Alternar entre branches permite passar rapidamente de uma versão do projeto para outra. Nesse processo, os arquivos locais são atualizados automaticamente para corresponder à branch selecionada.

Clique com o botão direito do mouse em um arquivo ou uma pasta e selecione "Branch do Git". Na lista de branches, escolha a branch desejada.

Criação de commits #

Os arquivos e pastas modificados são identificados pelo ícone especial Modificado.

Arquivos modificados

Antes de criar um commit, você pode visualizar as alterações feitas no arquivo. Para isso, clique com o botão direito do mouse sobre ele e selecione "Ver diferenças no Git".

Alterações no arquivo

Para enviar as alterações, clique com o botão direito do mouse em um arquivo ou uma pasta e selecione "Enviar alterações para o Git".

Na janela de criação do commit, você pode selecionar os arquivos que serão incluídos e adicionar um comentário. Comentários detalhados facilitam a análise posterior do histórico de alterações do projeto.

Envio para o Git

Clique em "OK". O MetaEditor criará o commit e o enviará ao repositório remoto.

Depois que o envio e o commit forem concluídos com sucesso, os arquivos e pastas correspondentes serão identificados pelo ícone especial "Sem alterações".

Obter alterações #

Quando várias pessoas trabalham no mesmo projeto, outra pessoa pode fazer alterações e enviá-las antes de você. O mesmo pode ocorrer se você fizer alterações em um computador e continuar o desenvolvimento em outro. Obter as alterações do repositório remoto permite atualizar a cópia local do projeto e ajuda a evitar conflitos.

Para obter todas as alterações disponíveis, clique com o botão direito do mouse na pasta e selecione "Obter atualizações do Git". A guia "Diário" exibirá informações sobre a operação realizada, incluindo detalhes das alterações obtidas.

Guia "Diário" com operações Git

Descarte de alterações #

Depois de editar o código ou excluir arquivos, você pode restaurar facilmente o projeto ao estado anterior a essas alterações.

Para descartar as alterações de um arquivo ou uma pasta, clique com o botão direito do mouse sobre o item e selecione "Descartar alterações no Git".

Se vários arquivos do projeto tiverem sido modificados, será aberta uma janela de seleção. Escolha os arquivos cujas alterações devem ser descartadas e clique em "OK".

Janela de descarte de alterações

Se as alterações que você deseja desfazer já tiverem sido registradas em um commit, use a reversão de commit.

Reversão de commits #

Se um determinado commit causar problemas no funcionamento do programa ou se suas alterações não forem mais necessárias, elas poderão ser revertidas.

Clique com o botão direito do mouse no arquivo ou na pasta desejada e selecione "Ver histórico do Git" para abrir o histórico de commits. Em seguida, clique com o botão direito do mouse no commit que deseja reverter e selecione "Reverter para a revisão".

Janela de reversão de commits

O MetaEditor criará um novo commit que desfaz as alterações do commit selecionado, preservando todo o histórico do projeto.

Exclusão de arquivos #

Para excluir um arquivo ou uma pasta, clique com o botão direito do mouse sobre o item e selecione "Excluir". O arquivo ou a pasta será removido da cópia local do projeto.

Para removê-los também do repositório remoto, atualize o projeto e depois crie um commit que registre as exclusões. Como os demais commits, ele será enviado automaticamente pelo MetaEditor ao repositório remoto.

Exclusão de projetos públicos #

Para excluir um projeto da pasta Shared Projects, clique com o botão direito do mouse sobre ele e selecione "Excluir projeto público".

A cópia local do projeto será excluída. Se você for o autor do projeto, a cópia correspondente também será excluída do repositório remoto.

Visualização do histórico de commits #

O histórico de commits de um arquivo ou uma pasta contém comentários, nomes dos autores e datas. Ele permite acompanhar todas as alterações feitas no arquivo ou na pasta ao longo do desenvolvimento do projeto.

Clique com o botão direito do mouse em um arquivo ou uma pasta e selecione "Ver histórico do Git".

Na parte superior da janela, são exibidas as seguintes colunas:

  • Comentário – descrição informada ao criar o commit.
  • Autor – nome do usuário que criou o commit, ou seja, o login da conta MQL5.community.
  • Date – data e hora de criação do commit.

Janela do histórico de alterações

Selecione um commit na lista. Na parte inferior da janela serão exibidos os arquivos modificados, adicionados ou excluídos nesse commit.

Janela de alterações do commit

Os ícones indicam o tipo de alteração:

  • Adicionado – o arquivo foi adicionado.
  • Modificado – o arquivo foi modificado.
  • Excluído (Deleted) – o arquivo foi excluído.

Clique com o botão direito do mouse em um commit para acessar os seguintes comandos:

  • Comparar com a versão atual: abrir uma janela que compara o estado atual do arquivo com o commit selecionado.
  • Comparar com a revisão anterior: abrir uma janela que compara a versão anterior com o commit selecionado.
  • Reverter para a revisão: desfazer as alterações do commit selecionado.