サブモジュール

概要

Gitサブモジュール <https://git-scm.com/book/en/v2/Git-Tools-Submodules>`_ を使用すると、他のGitプロジェクトを全てコピー&ペーストする必要なく、自分のコードに統合することができます。

実際、顧客モジュールは他のリポジトリのモジュールに依存することができます。Odooに関して、この機能により、他のGitリポジトリのモジュールを、リポジトリのブランチに追加することができます。サブモジュールを使用してブランチにこれらの依存関係を追加すると、自身のリポジトリをクローンする際にサブモジュールとして追加されたリポジトリも同時にクローンできるため、コードとサーバのデプロイが容易になります。

さらに、サブモジュールとして追加するリポジトリの支店を選択でき、必要なリビジョンを管理できます。サブモジュールを特定のリビジョンに固定するかどうか、また、新しいリビジョンに更新するタイミングは、あなた次第です。

Odoo.shでは、サブモジュールを使用することで、他のリポジトリで利用可能なモジュールを使用したり、依存したりすることができます。プラットフォームは、あなたがサブモジュールを通じてブランチにモジュールを追加したことを検出し、それらを自動的にアドオンパスに追加します。これにより、それらのモジュールをデータベースにインストールすることができます。

If you add private repositories as submodules in your branches, you need to configure a deploy key in your Odoo.sh project settings and in your repository settings. Otherwise Odoo.sh won't be allowed to download them. The procedure is detailed in the chapter Settings > Submodules.

サブモジュールを追加

Odoo.sh (簡単)

警告

For now it is not possible to add private repositories with this method. You can nevertheless do so with Git.

Odoo.shで、プロジェクトのブランチビューで、サブモジュールを追加したいブランチを選択します。

右上の サブモジュール ボタンをクリックし、次に 実行 をクリックします。

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

フォーム付きダイアログが表示されます。以下の通りに入力を記入して下さい。

  • リポジトリのURL: リポジトリのSSH URL

  • ブランチ: 使用するブランチ

  • パス: このサブモジュールを追加したいフォルダ

../../../_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> サブモジュールとして追加したいリポジトリのSSH URLで、

  • <branch> 上記のレポジトリで使用するブランチによって

  • <path> このサブモジュールを追加したいフォルダで

変更をコミットおよびプッシュする:

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

置き換える

  • <remote> 変更をプッシュしたいリポジトリによって異なります。標準的なGitの設定では、これは origin です。

  • <branch> 変更をプッシュしたいブランチで。おそらく、最初のステップで git checkout を使用したブランチです。

Gitサブモジュールの詳細については、git-scm.comのドキュメント を参照して下さい。例えば、サブモジュールを最新のリビジョンに更新したい場合は、 Pulling in Upstream changes の章を参照して下さい。

モジュールを無視する

多くのモジュールを含むリポジトリを追加する場合、自動的にインストールされるモジュールがある場合に備えて、それらの一部を無視したいと思うかもしれません。 そうするには、サブモジュールフォルダのプレフィックスに . を追加します。 プラットフォームはこのフォルダを無視し、別のフォルダからシンボリックリンクを作成することで、モジュールを手動で選択することができます。