Phân hệ phụ

Tổng quan

A Git submodule allows you to integrate other Git projects into your code, without the need to copy-paste all their code.

Các phân hệ tùy chỉnh của bạn có thể phụ thuộc vào phân hệ từ các kho lưu trữ khác. Đối với Odoo, tính năng này cho phép bạn thêm phân hệ từ các kho lưu trữ Git khác vào các nhánh kho lưu trữ của bạn. Việc thêm các phụ thuộc này vào nhánh của bạn thông qua phân hệ phụ giúp bạn triển khai mã và máy chủ dễ dàng hơn, vì bạn có thể sao chép các kho lưu trữ được thêm dưới dạng phân hệ phụ cùng lúc sao chép kho lưu trữ của riêng mình.

Ngoài ra, bạn có thể chọn nhánh kho lưu trữ được thêm vào dưới dạng phân hệ phụ và có thể kiểm soát bản sửa đổi mà bạn muốn. Bạn có quyền quyết định xem có muốn ghim phân hệ phụ vào một bản sửa đổi cụ thể hay không và khi nào bạn muốn cập nhật lên bản sửa đổi mới hơn.

Trong Odoo.sh, các phân hệ phụ cung cấp cho bạn khả năng sử dụng và phụ thuộc vào những phân hệ có sẵn trong các kho lưu trữ khác. Nền tảng sẽ phát hiện việc bạn thêm phân hệ thông qua phân hệ phụ trong nhánh và tự động thêm chúng vào đường dẫn addon của bạn để bạn có thể cài đặt chúng trong cơ sở dữ liệu của mình.

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.

Thêm một phân hệ phụ

Với Odoo.sh (đơn giản)

Cảnh báo

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

Trên Odoo.sh, trong chế độ xem nhánh của dự án, hãy chọn nhánh mà bạn muốn thêm phân hệ phụ.

Ở góc trên bên phải, nhấp vào nút Phân hệ phụ, sau đó nhấp vào Chạy.

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

Một hộp thoại có biểu mẫu sẽ hiển thị. Điền các thông tin đầu vào như sau:

  • URL kho lưu trữ: URL SSH của kho lưu trữ.

  • Nhánh: Nhánh bạn muốn sử dụng.

  • Đường dẫn: Thư mục mà bạn muốn thêm phân hệ phụ này vào nhánh của mình.

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

Trên Github, bạn có thể lấy URL kho lưu trữ bằng nút Sao chép hoặc tải xuống của kho lưu trữ. Hãy nhớ sử dụng SSH.

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

Với Git (nâng cao)

Trong terminal, trong thư mục nơi kho lưu trữ Git của bạn được sao chép, checkout nhánh mà bạn muốn thêm phân hệ phụ:

$ git checkout <branch>

Sau đó, thêm phân hệ phụ bằng lệnh dưới đây:

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

Thay thế

  • <git@yourprovider.com>:<username/repository.git> by the SSH URL of the repository you want to add as submodule,

  • <branch> by the branch you want to use in the above repository,

  • <path> by the folder in which you want to add this submodule.

Commit và push thay đổi của bạn:

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

Thay thế

  • <remote> by the repository on which you want to push your changes. For a standard Git setup, this is origin.

  • <branch> by the branch on which you want to push your changes. Most likely the branch you used git checkout on in the first step.

You can read the git-scm.com documentation for more details about the Git submodules. For instance, if you would like to update your submodules to have their latest revision, you can follow the chapter Pulling in Upstream changes.

Bỏ qua phân hệ

If you’re adding a repository that contains a lot of modules, you may want to ignore some of them in case there are any that are installed automatically. To do so, you can prefix your submodule folder with a .. The platform will ignore this folder and you can hand pick your modules by creating symlinks to them from another folder.