Tôi không đồng ý với quy tắc này và tôi đồng ý với những gì Mason Wheeler nói. Tôi muốn thêm một vài ý tưởng.
Tôi cố gắng cam kết mỗi khi tôi có một thay đổi có ý nghĩa để cam kết: điều này có thể là vài lần một ngày nếu tôi sửa một vài lỗi nhỏ hoặc mỗi tuần một lần nếu tôi đang làm việc trên một phần mềm lớn hơn mà phần còn lại không thể sử dụng mã theo bất kỳ cách có ý nghĩa cho đến khi nó đạt đến một trạng thái nhất quán.
Ngoài ra, tôi giải thích cam kết là xuất bản một bản sửa đổi có ý nghĩa đóng góp chức năng mới cho cơ sở mã. Tôi nghĩ rằng người ta nên cố gắng làm sạch mã trước khi cam kết để các nhà phát triển khác có thể hiểu ý nghĩa và mục đích của thay đổi khi họ nhìn vào lịch sử sửa đổi. Càng ít thay đổi mà các nhà phát triển khác thấy trong lịch sử thì càng tốt: khi tôi nhìn vào lịch sử sửa đổi, tôi muốn thấy các mức tăng thêm một số chức năng có ý nghĩa; Tôi không quan tâm đến mọi ý tưởng nhỏ mà mỗi nhà phát triển đã có và muốn thử trước khi họ đạt được giải pháp.
Hơn nữa, tôi không nghĩ nên sử dụng máy chủ SVN (hoặc bất kỳ hệ thống kiểm soát phiên bản nào) làm phương tiện dự phòng mà ảnh chụp nhanh mã hiện tại được cam kết (với điều kiện là nó biên dịch): bạn có thể sử dụng thẻ USB hoặc ổ đĩa USB ngoài hoặc ổ đĩa mạng để phản chiếu mã hiện tại của bạn để nó không bị mất nếu máy tính của bạn bị hỏng. Kiểm soát sửa đổi và sao lưu dữ liệu là hai điều khác nhau. Xuất bản bản sửa đổi không giống như lưu ảnh chụp nhanh
mã của bạn.
Cuối cùng, tôi nghĩ rằng không nên là một vấn đề để cam kết mọi lúc và sau đó (tức là chỉ khi một người thực sự hài lòng với trạng thái hiện tại của mã) và tránh xung đột hợp nhất không phải là một lý do tốt để cam kết (quá) thường xuyên. Nhiều xung đột hợp nhất xảy ra khi những người khác nhau làm việc trên cùng một tệp cùng một lúc, đó là một thực tiễn xấu (xem ví dụ bài viết này , điểm 7). Hợp nhất các xung đột nên được giảm bớt bằng cách chia một dự án thành các mô-đun với giao diện rõ ràng và càng ít phụ thuộc càng tốt, và bằng cách phối hợp công việc của các nhà phát triển để mã mà họ làm việc chồng chéo ít nhất có thể.
Chỉ 2 xu của tôi.
BIÊN TẬP
Một lý do khác chống lại các cam kết sớm xuất hiện trong đầu tôi là một phiên bản lỗi (rất) không thể được kiểm tra. Nếu bạn đang cam kết trên thân cây và nhóm thử nghiệm của bạn đang thử nghiệm mỗi ngày, họ có thể không có phiên bản thử nghiệm nào trong vài giờ (hoặc trong một ngày). Ngay cả khi bạn không cố gắng sửa lỗi và chỉ hoàn nguyên các thay đổi của mình, việc xây dựng lại có thể mất một vài giờ. Với, giả sử, năm người thử nghiệm làm việc trong nhóm của bạn, bạn đã lãng phí 5 x 2 = 10 giờ thời gian của nhóm do không hoạt động. Nó đã xảy ra với tôi một lần vì vậy tôi thực sự cố gắng tránh các cam kết sớm trong tên của cam kết càng sớm càng tốt .