Tôi đang làm việc trên một số dự án mà tôi muốn cung cấp một thay đổi chính xác cho mỗi bản phát hành, nhưng tôi chưa tìm thấy một phương pháp nào để thu thập các thay đổi đó sẽ hoạt động mà không gặp rắc rối. Vấn đề chủ yếu là khi thời gian giữa các phiên bản dài và mỗi phiên bản có rất nhiều tính năng và sửa lỗi và khi phần mềm có một số nhánh được phát triển cùng một lúc.
Một số tùy chọn tôi đã xem xét:
- Xây dựng các thay đổi từ các thông điệp cam kết và yêu cầu các nhà phát triển viết các thông điệp như thể họ sẽ viết một dòng cho các thay đổi (mà họ sẽ thực hiện một cách hiệu quả).
- Có thể không hoạt động khi có nhiều nhánh và hợp nhất giữa các nhánh (có thể khó biết được cam kết nào cuối cùng đã kết thúc trong bản phát hành).
- Yêu cầu rằng đối với mỗi thay đổi trong mã phải có một vé tương ứng trong hệ thống theo dõi lỗi. Thay đổi có thể được viết dựa trên vé.
- Các nhà phát triển có thể cảm thấy bực bội khi kiếm một vé cho những thay đổi nhỏ, đặc biệt là nếu việc bán vé mất nhiều thời gian hơn sửa lỗi.
- Yêu cầu các nhà phát triển luôn cập nhật thay đổi (dưới dạng tệp văn bản trong gốc dự án) cùng lúc khi họ thực hiện thay đổi mã.
- Cảm thấy như lao động thủ công có thể được tự động.
- Yêu cầu người quản lý dự án lấy khác biệt của phiên bản hiện tại và phiên bản trước đó và viết thay đổi tại thời điểm đó dựa trên những gì họ thấy đã được thay đổi.
- Công việc bổ sung cho người chịu trách nhiệm phát hành và có thể không rõ ràng hiệu quả thực tế của thay đổi chỉ bằng cách xem mã.
- Chỉ gửi các tính năng đã được lên kế hoạch để phát hành; bạn có thể viết thay đổi ngay cả trước khi bạn bắt đầu viết mã.
- Không phải là một lựa chọn thực sự trừ khi bạn đang sử dụng mô hình thác nước.
Tôi đã từng sử dụng từng loại này hoặc một biến thể của chúng trong quá khứ nhưng chúng quá không đáng tin cậy, tốn nhiều công sức hoặc cứng nhắc. Có ai có một viên đạn ma thuật hoặc ý tưởng tốt về cách giải quyết vấn đề?