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.

Dacă adăugați depozite private ca submodule în ramurile dvs., trebuie să configurați o cheie de implementare în setările proiectului dvs. Odoo.sh și în setările depozitului dvs. Altfel, Odoo.sh nu va fi autorizat să le descarce. Procedura este detaliată în capitolul: Setări > Submodule.

Adăugarea unui submodule

Cu Odoo.sh (simplu)

Atenționare

Pentru moment nu este posibilă adăugarea depozitelor private cu această metodă. Totuși, puteți face asta: cu 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.