Chúng tôi đang di chuyển sang git. Chúng tôi có một số lượng lớn các mô-đun tạo nên các sản phẩm của chúng tôi, một số sản phẩm được chia sẻ giữa các sản phẩm. Sản phẩm được đại diện bởi một siêu kho "mỏng" (ssh: //server/product.git) mà chỉ chứa submodules:Làm thế nào để làm việc với các mô-đun con và các chiến lược kho lưu trữ n-tiers git
[submodule "module1"]
path=module1
url=ssh://server/product/module1.git
[submodule "module2"]
path=module2
url=ssh://server/product/module2.git
...
tôi có thể clone kho siêu và làm việc với các môđun con và cam kết họ, và sau đó cam kết các mô-đun con đến kho lưu trữ siêu.
Sự cố xảy ra khi tôi muốn giới thiệu một cấp khác. Có hai kịch bản cơ bản (điều này có thể kết hợp để làm cho các thiết lập phức tạp hơn, nhưng bất cứ điều gì phải là một sự kết hợp của những):
Là một nhà phát triển, tôi sao chép một kho lưu trữ trung ương và làm việc. Sau đó, tôi muốn gửi mã của mình đến máy chủ tích hợp liên tục của chúng tôi trước khi hợp nhất các thay đổi của tôi với kho lưu trữ trung tâm. Tôi để máy chủ CI sao chép repo của tôi. Điều này không làm việc, máy chủ CI sẽ sao chép siêu repo của tôi và sau đó nó sẽ sao chép các mô-đun con từ vị trí kho trung tâm (vì đó là những gì nó nói trong .gitmodules).
Là một nhóm chúng tôi muốn có một kho lưu trữ tích hợp mà chúng tôi làm việc trước khi chúng tôi, vào cuối một lần chạy nước rút, nhập mã của chúng tôi vào kho lưu trữ trung tâm. Điều này không thành công, vì lý do tương tự.
Tôi đã cố chỉ định URL tương đối cho các mô-đun con, nhưng điều này không có tác dụng, vì khi chúng tôi sao chép tầng thứ hai vào tầng thứ ba, các URL tương đối giải quyết liên quan đến vị trí lưu trữ tầng thứ hai. các vị trí submodule bậc hai nằm bên trong kho lưu trữ siêu tầng thứ hai.
Tôi có thể có cả hai? Git submodules và cấu trúc kho lưu trữ n-tier?
Xem giải pháp tại đây: http://stackoverflow.com/questions/6031494/git-submodules-and-ssh-access – Cybot