Undermoduler

Översikt

En Git-submodul låter dig integrera andra Git-projekt i din kod, utan att du behöver kopiera in all deras kod.

Dina anpassade moduler kan faktiskt vara beroende av moduler från andra repositories. När det gäller Odoo kan du med den här funktionen lägga till moduler från andra Git-arkiv i grenarna i ditt arkiv. Om du lägger till dessa beroenden i din gren via undermoduler blir det enklare att distribuera din kod och dina servrar, eftersom du kan klona de repositorier som lagts till som undermoduler samtidigt som du klonar ditt eget repositorium.

Dessutom kan du välja vilken gren i arkivet som ska läggas till som undermodul och du har kontroll över vilken revision du vill ha. Det är upp till dig att bestämma om du vill fästa undermodulen till en viss revision och när du vill uppdatera till en nyare revision.

I Odoo.sh ger undermodulerna dig möjlighet att använda och vara beroende av moduler som finns tillgängliga i andra repositories. Plattformen kommer att upptäcka att du har lagt till moduler via submoduler i dina grenar och automatiskt lägga till dem i din addons-sökväg så att du kan installera dem i dina databaser.

Om du lägger till privata arkiv som undermoduler i dina grenar måste du konfigurera en distributionsnyckel i dina Odoo.sh-projektinställningar och i dina arkivinställningar. Annars kommer Odoo.sh inte att kunna ladda ner dem. Förfarandet beskrivs i detalj i kapitlet Inställningar > Submoduler.

Lägga till en undermodul

Med Odoo.sh (enkelt)

Varning

För närvarande är det inte möjligt att lägga till privata arkiv med den här metoden. Du kan dock göra det med Git.

På Odoo.sh, i vyn Grenar för ditt projekt, väljer du den gren där du vill lägga till en undermodul.

Klicka på knappen Submodul i det övre högra hörnet och sedan på Kör.

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

En dialogruta med ett formulär visas. Fyll i uppgifterna enligt följande:

  • URL för förvaret: SSH-URL för förvaret.

  • Gren: Den filial du vill använda.

  • Sökväg: Den mapp där du vill lägga till denna undermodul i din gren.

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

På Github kan du få arkivets URL med knappen Clone or download i arkivet. Se till att använda SSH.

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

Med Git (avancerad)

I en terminal, i mappen där ditt Git-repository är klonat, checkar du ut den gren där du vill lägga till en undermodul:

$ git checkout <branch>

Lägg sedan till undermodulen med hjälp av kommandot nedan:

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

Ersätt

  • <git@yourprovider.com>:<username/repository.git> med SSH-URL:en för det arkiv som du vill lägga till som undermodul,

  • <branch> med den gren du vill använda i ovanstående arkiv,

  • <path> med den mapp där du vill lägga till denna undermodul.

Bekräfta och skicka dina ändringar:

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

Ersätt

  • <remote> av det arkiv där du vill flytta dina ändringar. För en standard Git-installation är detta origin.

  • <branch> av den gren som du vill flytta dina ändringar till. Troligtvis den gren som du använde git checkout på i det första steget.

Du kan läsa git-scm.com documentation för mer information om Git-submodulerna. Om du till exempel vill uppdatera dina undermoduler så att de har den senaste revisionen kan du följa kapitlet Pulling in Upstream changes.

Ignorera moduler

Om du lägger till ett arkiv som innehåller många moduler kanske du vill ignorera några av dem om det finns några som installeras automatiskt. För att göra det kan du prefixa din undermodulmapp med en .. Plattformen kommer att ignorera denna mapp och du kan handplocka dina moduler genom att skapa symlinks till dem från en annan mapp.