Đọc một vài câu trả lời "Tại sao DVCS tốt hơn" cho một số câu hỏi trên Lập trình viên. Tất cả họ dường như nói rằng, nói chung, DVCS tốt hơn vì bạn không có một cuộc đua cam kết trong các dự án lớn, IE cam kết, đã lỗi thời cập nhật, cam kết, hết hạn một lần nữa, cam kết, vẫn hết hạn, v.v.
DVCS giới hạn điều này với khái niệm đẩy. Tuy nhiên, trong các dự án rất lớn sẽ không có một "cuộc đua đẩy", đặc biệt là vào cuối ngày? Tôi biết trong Git, điều này phần nào được khắc phục bằng cách phân nhánh liên tục cho mọi thứ, nhưng trong Mercurial bạn không phân nhánh, bạn tạo ra một cái đầu mới.
Vấn đề tôi thấy
- Người dùng cố gắng đẩy
- Hết hạn (mercurial sẽ không cho phép bạn đẩy nếu repo cục bộ của bạn đã hết hạn), vì vậy bạn kéo và hợp nhất các thay đổi cục bộ của bạn
- Người dùng cố gắng đẩy lại nhưng trong khi họ đang hợp nhất thì người khác lại đẩy, vì vậy họ lại hết hạn
- Kéo và hợp nhất lại
- Vẫn còn lỗi thời
- Nói lại
Nghe có vẻ quen?
Đây có phải là một vấn đề thực tế với reposururur rất lớn và phổ biến? Thế còn bên trong một công ty khi tất cả mọi người thực hiện cú hích cuối cùng trong ngày?
--close-branch
khi cam kết - và đồng bóng đã đặt tên các nhánh, bạn không phải sao chép vào một thư mục mới
hg branch myfeature; hg ci -m "Starting feature branch"; hg push --new-branch