Submódulos

Visão geral

Um submódulo Git permite que você integre outros projetos Git ao seu código, sem a necessidade de copiar e colar todo o código deles.

De fato, seus módulos personalizados podem depender de módulos de outros repositórios. Em relação ao Odoo, esse recurso permite que você adicione módulos de outros repositórios Git às ramificações do seu repositório. A adição dessas dependências em sua ramificação por submódulos facilita a implementação de seu código e servidores, pois você pode clonar os repositórios adicionados como submódulos ao mesmo tempo em que clona seu próprio repositório.

Além disso, você pode escolher a ramificação do repositório adicionada como submódulo e tem o controle da revisão desejada. Cabe a você decidir se deseja fixar o submódulo em uma revisão específica e quando deseja atualizá-lo para uma revisão mais recente.

No Odoo.sh, os submódulos lhe dão a possibilidade de usar e depender de módulos disponíveis em outros repositórios. A plataforma detectará que você adicionou módulos por submódulos em suas ramificações e os adicionará ao seu caminho de addons automaticamente para que você possa instalá-los em suas bases de dados.

Se você adicionar repositórios privados como submódulos em suas ramificações, precisará configurar uma chave de implementação nas configurações do projeto Odoo.sh e nas configurações do repositório. Caso contrário, o Odoo.sh não terá permissão para baixá-los. O procedimento é detalhado no capítulo Definições > Submódulos

Adicionar um submódulo

Com Odoo.sh (simples)

Aviso

No momento, não é possível adicionar repositórios privados com esse método. No entanto, você pode fazer isso :ref:com o Git 1<odoosh-advanced-submodules-withgit>.

No Odoo.sh, na visualização de ramificações de seu projeto, escolha a ramificação na qual você pretende adicionar um submódulo.

No canto superior direito, clique no botão Submódulo e, em seguida, em Executar.

../../../_images/advanced-submodules-button.png

É exibida uma caixa de diálogo com um formulário. Preencha as entradas da seguinte forma:

  • URL do repositório: o URL SSH do repositório.

  • Ramificação: A ramificação que você quer usar.

  • Caminho: A pasta na qual você quer adicionar esse submódulo em sua ramificação.

../../../_images/advanced-submodules-dialog.png

No Github, você pode obter o URL do repositório com o botão Clone ou download do repositório. Certifique-se de usar SSH.

../../../_images/advanced-submodules-github-sshurl.png

Com Git (avançado)

Em um terminal, na pasta em que seu repositório Git está clonado, faça checkout da ramificação na qual deseja adicionar um submódulo:

$ git checkout <branch>

Então, adicione o submódulo usando o comando abaixo.

$ git submodule add -b <branch> <git@yourprovider.com>:<username/repository.git> <path>

Substituir

  • <git@yourprovider.com>:<username/repository.git> pelo URL SSH do repositório que você quer adicionar como submódulo,

  • <branch> pela ramificação que você quer usar no repositório acima,

  • <path> pela pasta na qual você quer adicionar esse submódulo.

Faça commit e envie suas alterações:

$ git commit -a && git push -u <remote> <branch>

Substituir

  • <remote> pelo repositório para o qual você quer enviar suas alterações. Para uma configuração padrão do Git, isso é origin.

  • <branch> pela ramificação para a qual você quer enviar suas alterações. Provavelmente, aquela em que você usou o git checkout na primeira etapa.

Você pode ler a documentação do git-scm.com para obter mais detalhes sobre os submódulos do Git. Por exemplo, se quiser atualizar seus submódulos para que tenham a revisão mais recente, você pode seguir o capítulo Pulling in Upstream changes.

Ignorar módulos

Se você estiver adicionando um repositório que contenha muitos módulos, talvez queira ignorar alguns deles, caso haja algum que seja instalado automaticamente. Para isso, você pode prefixar sua pasta de submódulos com um .. A plataforma ignorará essa pasta e você poderá escolher seus módulos manualmente, criando links simbólicos para eles a partir de outra pasta.