Підмодулі

Огляд

Підмодуль Git дозволяє інтегрувати інші проекти Git у ваш код без необхідності копіювати та вставляти весь їхній код .

Дійсно, ваші спеціальні модулі можуть залежати від модулів з інших репозиторіїв. Що стосується Odoo, ця функція дозволяє додавати модулі з інших репозиторіїв Git у гілки вашого репозиторію. Додавання цих залежностей у вашу гілку через підмодулі полегшує розгортання вашого коду та серверів, оскільки ви можете клонувати репозиторії, додані як підмодулі, одночасно з клонуванням свого власного репаозиторію.

Крім того, ви можете вибрати гілку репозиторію, додану як підмодуль, і ви зможете контролювати потрібну версію. Ви самі вирішуєте, чи бажаєте ви прикріпити підмодуль до певної версії та коли ви бажаєте оновити до новішої версії.

В Odoo.sh підмодулі дають вам можливість використовувати та залежати від модулів, доступних в інших репозиторіях. Платформа виявить, що ви додали модулі через підмодулі у своїх гілках, і автоматично додасть їх до шляху додатків, щоб ви могли встановити їх у своїх базах даних.

Якщо ви додаєте приватні репозиторії як підмодулі у своїх гілках, вам потрібно налаштувати ключ розгортання в налаштуваннях проекту Odoo.sh і в налаштуваннях репозиторію. Інакше Odoo.sh не зможе завантажити їх. Процедура детально описана в розділі Налаштування > Підмодулі.

Додавання підмодуля

З Odoo.sh (простий)

Попередження

Наразі неможливо додати приватні репозиторії за допомогою цього методу. Тим не менш, ви можете зробити це з Git.

На Odoo.sh у перегляді гілок вашого проекту, виберіть гілку, до якої ви хочете додати підмодуль.

У верхньому правому куті натисніть кнопку Підмодуль, а потім натисніть Виконати.

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

Відобразиться діалогове вікно з формою. Заповніть вхідні дані наступним чином:

  • URL-адреса репозиторія: URL-адреса SSH репозиторія.

  • Гілка: гілка, яку ви хочете використовувати.

  • Шлях: папка, до якої ви хочете додати цей підмодуль у свою гілку.

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

На Github ви можете отримати URL-адресу репозиторію за допомогою кнопки Клонувати або завантажити репозиторію. Обов’язково використовуйте SSH.

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

З Git (розширений)

У терміналі в папці, де клоновано ваш репозиторій Git, перевірте гілку, до якої ви хочете додати підмодуль:

$ git checkout <branch>

Потім додайте підмодуль за допомогою наведеної нижче команди:

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

Замінити

  • <git@yourprovider.com>:<username/repository.git> за URL-адресою SSH репозиторію, який ви хочете додати як підмодуль,

  • <branch> за тією гілкою, яку ви бажаєте використовувати у вищезгаданому репозиторії,

  • <path> за папкою, до якої ви хочете додати цей підмодуль.

Зафіксуйте та надішліть свої зміни:

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

Замінити

  • <remote> репозиторієм, до якого ви хочете надіслати свої зміни. Для стандартного налаштування Git це origin.

  • <branch> за гілкою, до якої ви хочете внести зміни. Швидше за все, це гілка, у якій ви використовували git checkout на першому кроці.

Ви можете прочитати документацію git-scm.com <https://git-scm.com/book/en/v2/Git-Tools-Submodules>`, щоб дізнатися більше про субмодулі Git. Наприклад, якщо ви бажаєте оновити свої підмодулі, щоб мати їхню останню версію, ви можете слідувати розділу Pulling in Upstream changes.

Ігнорувати модулі

Якщо ви додаєте репозиторій, який містить багато модулів, ви можете проігнорувати деякі з них на випадок, якщо є такі, що встановлюються автоматично. Для цього ви можете додати до папки підмодуля префікс .. Платформа ігноруватиме цю папку, і ви можете вручну вибрати свої модулі, створивши на них символічні посилання з іншої папки.