Submodule

Prezentare generală

Un Git submodule vă permite să integrați alte proiecte Git în codul dvs., fără a avea nevoie să copiați-colați tot codul lor.

Într-adevăr, modulele dvs. personalizate pot depinde de module din alte depouri. În ceea ce privește Odoo, această caracteristică vă permite să adaugați module din alte depouri Git în ramurile depoului dvs. Adăugarea acestor dependențe în ramura dvs. prin submodule face implementarea codului și a serverelor mai ușoară, deoarece puteți clona depozitele adăugate ca submodule în același timp în care clonați propriul depozit.

De asemenea, puteți alege ramura depozitului adăugat ca submodule și aveți controlul reviziei pe care doriți să o utilizați. Este la latitudinea dvs. să decideți dacă doriți să atașați submodule la o revizie specifică și când doriți să actualizați la o revizie mai nouă.

În Odoo.sh, submodulele vă oferă posibilitatea de a utiliza și depinde de module disponibile în alte depozite. Platforma va detecta că ați adăugat module prin submodule în ramurile dvs. și le va adăuga automat la calea modulelor dvs. pentru a le putea instala în bazele de date.

If you add private repositories as submodules in your branches, you need to configure a deploy key in your Odoo.sh project settings and in your repository settings. Otherwise Odoo.sh won’t be allowed to download them. The procedure is detailed in the chapter Settings > Submodules.

Adăugarea unui submodule

Cu Odoo.sh (simplu)

Atenționare

For now it is not possible to add private repositories with this method. You can nevertheless do so with Git.

Pe Odoo.sh, în vizualizarea ramurilor proiectului dvs., alegeți ramura în care doriți să adăugați un submodule.

În colțul din dreapta sus, faceți clic pe butonul Submodule și apoi pe Run.

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

Un dialog cu un formular este afișat. Completați câmpurile ca urmează:

  • URL-ul depozitului: URL-ul SSH al depozitului.

  • Ramura: Ramura pe care doriți să o utilizați.

  • Folder: Folderul în care doriți să adăugați acest submodule în ramura dvs.

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

Pe Github, puteți obține URL-ul depozitului cu butonul Clone or download al depozitului. Asigurați-vă că folosiți SSH.

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

Cu Git (avansat)

Într-un terminal, în folderul unde este clonat depozitul Git, verificați ramura în care doriți să adăugați un submodule:

$ git checkout <branch>

Apoi, adăugați submodule-ul folosind comanda de mai jos:

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

Înlocuire

  • <git@yourprovider.com>:<username/repository.git> cu URL-ul SSH al depozitului pe care doriți să-l adăugați ca submodule,

  • <branch> cu ramura pe care doriți să o utilizați în depozitul de mai sus,

  • <path> cu folderul în care doriți să adăugați acest submodule.

Comiteți și trimiteți modificările dvs:

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

Înlocuire

  • <remote> cu depozitul pe care doriți să trimiteți modificările dvs. Pentru o configurare standard Git, aceasta este origin.

  • <branch> cu ramura pe care doriți să trimiteți modificările dvs. Cel mai probabil este ramura pe care ați folosit git checkout în primul pas.

Puteți citi documentația git-scm.com pentru mai multe detalii despre submodule-urile Git. De exemplu, dacă doriți să actualizați submodule-urile pentru a avea cea mai recentă revizie, puteți urma capitolul Pulling in Upstream changes.

Ignorați modulele

Dacă adăugați un depozit care conține multe module, puteți dori să ignorați unele dintre ele în cazul în care există module care sunt instalate automat. Pentru a face acest lucru, puteți adăuga un prefix folderului submodule cu un .. Platforma va ignora acest folder și puteți alege manual modulele dvs. prin crearea de legături simbolice către ele dintr-un alt folder.