Untermodule

Übersicht

Ein Git-Untermodul ermöglicht es Ihnen, andere Git-Projekte in Ihren Code zu integrieren, ohne deren gesamten Code kopieren und einfügen zu müssen.

Ihre benutzerdefinierten Module können in der Tat von Modulen aus anderen Repositorys abhängen. Bei Odoo können Sie mit dieser Funktion Module aus anderen Git-Repositorys in die Zweige Ihres Repositorys aufnehmen. Das Hinzufügen dieser Abhängigkeiten in Ihrem Zweig durch Untermodule erleichtert die Bereitstellung Ihres Codes und Ihrer Server, da Sie die als Untermodule hinzugefügten Repositorys gleichzeitig mit Ihrem eigenen Repository klonen können.

Außerdem können Sie den Zweig des Repositorys wählen, der als Untermodul hinzugefügt wird, und Sie haben die Kontrolle über die gewünschte Revision. Es liegt an Ihnen zu entscheiden, ob Sie das Untermodul an eine bestimmte Revision binden möchten und wann Sie auf eine neuere Revision aktualisieren möchten.

In Odoo.sh bieten Ihnen die Untermodule die Möglichkeit, Module aus anderen Repositorys zu verwenden und von ihnen abzuhängen. Die Plattform erkennt, dass Sie Module über Untermodule in Ihren Zweigen hinzugefügt haben und fügt sie automatisch zu Ihrem Add-ons-Pfad hinzu, damit Sie sie in Ihren Datenbanken installieren können.

Wenn Sie private Repositorys als Untermodule in Ihren Zweigen hinzufügen, müssen Sie in Ihren Odoo.sh-Projekteinstellungen und in den Repository-Einstellungen einen Deploy-Schlüssel konfigurieren. Andernfalls kann Odoo.sh die Module nicht herunterladen. Das Verfahren wird im Kapitel Einstellungen > Untermodule ausführlich beschrieben.

Ein Untermodul hinzufügen

Mit Odoo.sh (einfach)

Warnung

Momentan ist es nicht möglich, mit dieser Methode private Repositorys hinzuzufügen. Sie können dies jedoch mit Git tun.

Wählen Sie in Odoo.sh in der Ansicht Zweige Ihres Projekts den Zweig aus, zu dem Sie ein Untermodul hinzufügen möchten.

Klicken Sie in der oberen rechten Ecke auf die Schaltfläche Untermodul und dann auf Ausführen.

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

Ein Dialog mit einem Formular wird angezeigt. Geben Sie Folgendes ein:

  • Repository-URL: Die SSH-URL des Repositorys.

  • Zweig: Der Zweig, den Sie verwenden möchten.

  • Pfad: Der Ordner, in den Sie dieses Untermodul in Ihrem Zweig einfügen möchten.

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

Auf Github können Sie die Repository-URL über die Schaltfläche Klonen oder Herunterladen des Repositorys erhalten. Stellen Sie sicher, dass Sie SSH verwenden.

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

Mit Git (erweitert)

Prüfen Sie in einem Terminal in dem Ordner, in dem Ihr Git-Repository geklont ist, den Zweig, in dem Sie ein Untermodul hinzufügen möchten:

$ git checkout <branch>

Fügen Sie dann das Untermodul mit folgendem Befehl hinzu:

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

Ersetzen Sie

  • <git@yourprovider.com>:<username/repository.git> durch die SSH-URL des Repositorys, das Sie als Untermodul hinzufügen möchten,

  • <branch> durch den Zweig, den Sie im obigen Repository verwenden möchten,

  • <path> durch den Ordner, in den Sie dieses Untermodul einfügen möchten.

Setzen Sie Ihre Änderungen fest und übertragen Sie sie:

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

Ersetzen Sie

  • <remote> durch das Repository, auf das Sie Ihre Änderungen übertragen möchten. Bei einer Standard-Git-Einrichtung ist dies origin.

  • <branch> durch den Zweig, auf den Sie Ihre Änderungen übertragen wollen. Wahrscheinlich der Zweig, den Sie im ersten Schritt mit git checkout bearbeitet haben.

Sie können die git-scm.com-Dokumentation für weitere Details über die Git-Untermodule lesen. Wenn Sie zum Beispiel Ihre Untermodule auf die neueste Revision aktualisieren möchten, können Sie das Kapitel Pulling in Upstream changes befolgen.

Module ignorieren

Wenn Sie ein Repository hinzufügen, das viele Module enthält, möchten Sie vielleicht einige davon ignorieren, falls es welche gibt, die automatisch installiert werden. Zu diesem Zweck können Sie dem Ordner Ihrer Untermodule ein . voranstellen. Die Plattform wird diesen Ordner ignorieren und Sie können Ihre Module manuell auswählen, indem Sie Symlinks zu ihnen aus einem anderen Ordner erstellen.