Tôi đã tự hỏi mình những câu hỏi tương tự khi chúng tôi thực hiện Subversion tại đây - khoảng 20 nhà phát triển trải rộng trên 4 - 6 dự án. Tôi đã không tìm thấy bất kỳ nguồn tốt nào với '' câu trả lời ''. Dưới đây là một số phần về cách câu trả lời của chúng tôi đã phát triển trong 3 năm qua:
- cam kết thường xuyên như là hữu ích; quy tắc ngón tay cái của chúng tôi là cam kết bất cứ khi nào bạn đã thực hiện đủ công việc rằng đó sẽ là một vấn đề phải làm lại nếu sửa đổi bị mất; đôi khi tôi cam kết cứ sau 15 phút hoặc lâu hơn, những lần khác có thể là vài ngày (vâng, đôi khi tôi phải mất một ngày để viết 1 dòng mã)
- chúng tôi sử dụng các nhánh, như một trong những câu trả lời trước đó của bạn được đề xuất, cho các đường phát triển khác nhau; ngay bây giờ cho một trong các chương trình của chúng tôi, chúng tôi có 3 nhánh hoạt động: 1 cho sự phát triển chính, 1 cho nỗ lực chưa hoàn thành để song song chương trình và 1 cho nỗ lực sửa đổi để sử dụng các tệp đầu vào và đầu ra XML;
- chúng tôi hiếm khi sử dụng thẻ, mặc dù chúng tôi nghĩ rằng chúng tôi nên sử dụng chúng để xác định các bản phát hành cho sản xuất;
Hãy nghĩ về sự phát triển tiến hành dọc theo một con đường duy nhất. Tại một số thời điểm hoặc trạng thái tiếp thị phát triển quyết định phát hành phiên bản đầu tiên của sản phẩm, do đó bạn cắm cờ trong đường dẫn có nhãn '1' (hoặc '1.0' hoặc những gì có bạn). Tại một số thời điểm khác, một số tia sáng sáng quyết định song song chương trình, nhưng quyết định rằng sẽ mất vài tuần và mọi người muốn tiếp tục đi xuống con đường chính trong thời gian đó. Vì vậy, bạn xây dựng một ngã ba trên con đường và những người khác nhau đi lang thang xuống các nhánh khác nhau.
Các cờ trên đường được gọi là 'thẻ' và các nhánh trên đường là nơi phân chia 'nhánh'. Thỉnh thoảng, cũng, các chi nhánh trở lại với nhau.
- chúng tôi đặt tất cả các tài liệu cần thiết để xây dựng một (hoặc hệ thống) thực thi vào kho lưu trữ; Điều đó có nghĩa là ít nhất là mã nguồn và tạo tệp (hoặc tệp dự án cho Visual Studio). Nhưng khi chúng ta có các biểu tượng và tập tin cấu hình và tất cả những thứ khác, điều đó sẽ đi vào kho lưu trữ. Một số tài liệu tìm đường vào repo; chắc chắn bất kỳ tài liệu nào như các tệp trợ giúp có thể tách rời với chương trình và đây là nơi hữu ích để đặt tài liệu dành cho nhà phát triển.
Chúng tôi thậm chí còn đặt các tệp thực thi Windows cho các bản phát hành sản xuất của mình ở đó, để cung cấp một vị trí duy nhất cho những người tìm kiếm phần mềm - các bản phát hành Linux của chúng tôi đi đến một máy chủ vì vậy không cần phải lưu trữ.
- chúng tôi không yêu cầu kho lưu trữ mọi lúc có khả năng cung cấp phiên bản mới nhất để xây dựng và thực thi; một số dự án hoạt động theo cách đó, một số thì không; quyết định thuộc về người quản lý dự án và phụ thuộc vào nhiều yếu tố nhưng tôi nghĩ nó bị phá vỡ khi thực hiện các thay đổi lớn đối với chương trình.