Nhóm của chúng tôi hiện đang trong quá trình chuyển từ SVN sang Git. Chúng tôi hiện đang sử dụng Maven làm công cụ xây dựng của chúng tôi.Tổ chức dự án sử dụng Maven + Git
Hiện tại, các dự án của chúng tôi có cấu trúc phân cấp xây dựng thông qua Maven, nhưng nằm ngang trên mặt phân cấp tệp/kho lưu trữ. Mục tiêu của tôi là kết hợp chặt chẽ hơn với phân cấp xây dựng Maven và cấu trúc phân cấp tệp trong kho của chúng tôi để làm cho mọi thứ dễ hiểu hơn.
Câu hỏi của tôi là mức thích hợp để tạo repo Git sao cho hệ thống phân cấp/tổ chức tệp được duy trì? Ví dụ:
- Big Project - (không có nguồn ở đây, chỉ cần một pom)
- Backend Dự án (nguồn + pom)
- Clients (không có nguồn ở đây, chỉ cần một pom)
- Bàn điều khiển (nguồn + pom)
- Web (nguồn + pom)
Vì vậy, các "pom chỉ" dự án sẽ được sử dụng cho các dự án nguồn thực tế nhóm. Nhưng repo của Git thuộc về đâu? Một số thành viên trong nhóm lo ngại rằng cam kết với dự án Web không thuộc về lịch sử cho dự án Bảng điều khiển. Nhưng nếu repo Git ở mức thấp nhất (các nút lá của cây), chúng ta sẽ mất tổ chức cấu trúc tệp (mặc dù cấu trúc phân cấp xây dựng có thể được duy trì trong Maven).
Chỉnh sửa: Mối quan tâm của thành viên nhóm không nhiều với lịch sử cam kết như khi gắn thẻ. Cho rằng các repo gốc Git là tại Big Project, và tôi muốn gắn thẻ các dự án Web (bằng cách gắn thẻ các Big Project), tại sao nên thẻ bao gồm các điều khiển dự án, mà có lẽ không phù hợp vào thẻ Web?
Bạn xử lý điều này trong SVN như thế nào? Tôi giả sử bạn có một cấu trúc giống như mô tả. Bạn đơn giản đã kiểm tra dự án lớn và mọi thứ khác sẽ có trên ổ cứng ... vậy tại sao bạn muốn thay đổi điều này? – khmarbaise