Chỉnh sửa : Làm cho điều này thậm chí còn rõ ràng hơn khi tiền thưởng sắp hết hạn: có cách nào để nhập lịch sử (kéo từ SCM khác nhau) trực tiếp vào một chi nhánh cụ thể với Mercurial không?
Tôi hiện đang làm việc trong một công ty sử dụng Perforce và đang mở đường cho việc kiểm soát phiên bản phân tán với Mercurial. Tôi đã thành công trong việc nhập lịch sử Perforce bằng cách sử dụng perfarce (một cái tên khá phù hợp, tôi cười mỗi khi tôi nhìn thấy / nói nó) tuy nhiên, điều này chỉ hoạt động với một nhánh duy nhất tại một thời điểm.
Đây là cách thiết lập tích hợp P4 của tôi hoạt động:
- Trong lực lượng, tạo một "khách hàng", đó là một mô tả về những gì bạn sẽ liên tục cập nhật / kiểm tra. Điều này chỉ có thể giải quyết một chi nhánh tại một thời điểm (thân cây hoặc khác).
- Một khi bạn làm điều này, chạy
hg clone p4://<server>/<client_name>
- Đi tới .hg / hgrc và đặt đường dẫn perforce:
perforce = p4://<server>/<client_name>
- Làm việc bình thường với mã theo đồng bóng, làm
hg pull perforce
để đồng bộ hóa,hg push
để xuất một thay đổi
Những gì tôi muốn có thể làm là có một đường dẫn lực lượng trên mỗi nhánh và có mọi thứ hoạt động trong cùng một kho lưu trữ. Bây giờ, đẩy không phải là một vấn đề, tuy nhiên, nếu tôi kéo lịch sử từ một nhánh khác, nó sẽ kết thúc ở nhánh mặc định.
Tôi muốn có thể làm một cái gì đó giống như hg pull perforce-R5
và đưa nó vào chi nhánh R5 của Mercurial. Ngay cả khi tôi không có lịch sử hợp nhất, nó vẫn đủ ngọt ngào để có thể bảo tồn lịch sử của chi nhánh.
Ngoài ra còn có các plugin khác cho CVCS cho phép bạn tích hợp tính đồng nhất, nhưng AFAIK, phần lật đổ có cùng một vấn đề.
Tôi không nghĩ có một cách dễ dàng để làm điều này, nhưng miễn là tôi có thể tự động hóa quy trình với một số hook và script trong một máy Mercurial, điều đó là đủ tốt.
Chỉnh sửa : Để làm cho mọi thứ rõ ràng hơn một chút:
- Thân cây Perforce được ánh xạ tới nhánh mặc định của Mercurial
- Chi nhánh Perforce R1 phải được ánh xạ tới nhánh phát hành-1 của Mercurial (tương tự cho R2, R3, v.v.)
- Khi tôi bảo Mercurial rút khỏi lực lượng (nghĩa là
hg pull perforce
"lực lượng" là tên của đường dẫn đến máy khách Perforce), nó sẽ kéo thân cây Perforce vào mặc định của Mercurial. - Khi tôi bảo Mercurial kéo từ perforce-R1 (nghĩa là
hg pull perforce-R1
"perforce-R1" là đường dẫn đến máy khách R1), nó sẽ kéo nhánh Perforce R1 đến nhánh "phát hành-1" của Mercurial. ĐÂY LÀ PHẦN TÔI ĐANG HỎI VỀ .