サブモジュール

概要

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

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

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

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

プライベートリポジトリをブランチとして追加する場合は、Odoo.shプロジェクトの設定とリポジトリの設定でデプロイキーを設定する必要があります。そうしないと、Odoo.shでそれらをダウンロードすることが許可されません。手順は以下をご覧下さい 管理設定 > サブモジュール

サブモジュールを追加

Odoo.shで (シンプル)

警告

現時点では、この方法で プライベート のリポジトリを追加することはできません。しかし、次の方法で追加できます:ref:Gitで <odoosh-advanced-submodules-withgit>

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>

置き換える

  • サブモジュールとして追加したいリポジトリのSSH URLで、<git@yourprovider.com>:<username/repository.git>

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

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

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

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

置き換える

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

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

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

モジュールを無視する

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