Tôi thực sự thực sự thực sự nghĩ rằng bạn sẽ cần một DVCS (ví dụ như đồng bóng, git) để làm điều này một cách tự nhiên. Với CVCS, bạn sẽ cần một chi nhánh và hy vọng bất cứ vị thần nào bạn có không có địa ngục hợp nhất.
Nếu bạn sử dụng DVCS, bạn có thể xếp lớp quy trình tích hợp để mã đã được xem xét trước khi đến máy chủ CI. Nếu bạn không có DVCS, mã sẽ đến máy chủ CI của bạn trước khi được xem xét trừ khi người đánh giá mã xem lại mã trên mỗi máy của nhà phát triển trước khi họ gửi thay đổi.
Cách đầu tiên để làm điều đó, đặc biệt nếu bạn không có phần mềm quản lý kho lưu trữ có thể giúp xuất bản các kho lưu trữ cá nhân (ví dụ: bitbucket, github, rhodecode), là có vai trò tích hợp phân cấp. Trong các sơ đồ sau, bạn có thể yêu cầu các trung úy xem xét công việc của các nhà phát triển và có nhà độc tài làm nhà tích hợp chính xem xét cách các trung úy sáp nhập công việc.
Một cách khác để làm điều đó nếu bạn có phần mềm quản lý kho lưu trữ, là sử dụng quy trình làm việc như sau:
Phần mềm quản lý kho lưu trữ thường giúp phát ra thông báo khi có hoạt động trong kho (ví dụ email, rss) cũng như cho phép yêu cầu kéo . Đánh giá mã có thể xảy ra một cách hữu cơ trong các yêu cầu kéo, vì các yêu cầu kéo thường khiến mọi người tham gia vào các cuộc hội thoại để tích hợp mã. Lấy yêu cầu kéo công khai này làm ví dụ. Trình quản lý tích hợp thực sự không thể cho phép mã đến kho lưu trữ may mắn (còn gọi là "kho lưu trữ trung tâm") nếu mã cần được sửa.
Quan trọng nhất, với DVCS bạn vẫn có thể hỗ trợ quy trình làm việc tập trung, bạn không cần phải có một quy trình công việc tuyệt vời khác nếu bạn không muốn ... nhưng với DVCS, bạn có thể tách kho lưu trữ phát triển trung tâm khỏi CI máy chủ và cung cấp cho ai đó quyền đẩy các thay đổi từ repo dev sang repo CI sau khi phiên đánh giá mã được thực hiện .
PS: Tín dụng cho hình ảnh đi đến git-scm.com