Підмодулі

Загальний огляд

Підмодуль 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. Наприклад, якщо ви бажаєте оновити свої підмодулі, щоб мати їхню останню версію, ви можете слідувати розділу Затягування змін у Upstream <https://git-scm.com/book/en/v2/Git-Tools-Submodules# _pullling_in_upstream_changes_from_the_submodule_remote>`_.

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

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