サブモジュール¶
概要¶
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で、プロジェクトのブランチビューで、サブモジュールを追加したいブランチを選択します。
右上の サブモジュール ボタンをクリックし、次に 実行 をクリックします。
フォーム付きダイアログが表示されます。以下の通りに入力を記入して下さい。
リポジトリのURL: リポジトリのSSH URL。
ブランチ: 使用するブランチ。
パス: このサブモジュールを追加したいフォルダ
GitHubでは、リポジトリの クロン または ダウンロード ボタンでリポジトリのURLを取得できます。必ず SSHを使用 して下さい。
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 の章を参照して下さい。
モジュールを無視する¶
多くのモジュールを含むリポジトリを追加する場合、自動的にインストールされるモジュールがある場合に備えて、それらの一部を無視したいと思うかもしれません。 そうするには、サブモジュールフォルダのプレフィックスに .
を追加します。 プラットフォームはこのフォルダを無視し、別のフォルダからシンボリックリンクを作成することで、モジュールを手動で選択することができます。