Субмодулі

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

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

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

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

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

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

Додавання субмодуля

За допомогою Odoo.sh (просто)

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

Наразі неможливо додати приватні репозиторії цим методом. Проте ви можете зробити це за допомогою Git.

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

У верхньому правому куті натисніть кнопку Submodule, а потім Run.

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

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

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

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

  • Path: Папка, в яку ви хочете додати цей субмодуль у вашій гілці.

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

На Github ви можете отримати URL репозиторію за допомогою кнопки Clone or download репозиторію. Переконайтеся, що використовуєте 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> на SSH-адресу репозиторію, який ви хочете додати як субмодуль,

  • <branch> на гілку, яку ви хочете використовувати у вказаному репозиторії,

  • <path> на папку, в яку ви хочете додати цей субмодуль.

Зафіксуйте та відправте ваші зміни:

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

Замінити

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

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

Ви можете прочитати документацію git-scm.com для отримання більш детальної інформації про субмодулі Git. Наприклад, якщо ви хочете оновити свої субмодулі до їх останньої ревізії, ви можете скористатися розділом Pulling in Upstream changes.

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

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